安全意识十原则(一)

  我是软件工程的学生,精力主要集中在业务开发中、功能实现中,较少的注意软件的安全意识,在校的我们所做的项目还比较小型,如果针对工作后,公司项目的业务实现,我们只是简单做一下扫描和渗透,很少在在代码和逻辑层面做深入的分析,这样一旦出错,会发生比较严重的后果,所以安全还是要做好,首先我们必须一点一滴的建立起必要的安全意识。

  下面是作者根据自身经验总结的偏产品技术的安全意识十原则:

  1. 安全问题是木桶效应

    整个系统的安全程度取决于木桶最短的那块板。黑客往往喜欢找边缘化的子站点或非核心逻辑进行攻破,这些模块或站点往往是由初级程序员打造,有的甚至还不是主站统一的技术架构,总体上会防备薄弱。黑客能够攻破任意站点进去到内网,就有种种可能。针对这点,我们需要做的是对于安全的排查,需要全面覆盖,除非子站在部署上用户体系上彻底隔离。

  2、开发层面:不要信任客户端的任何东西

    对于HTTP协议,不管是头里面的东西(来源、客户端类型、Cookie)还是正文里面的东西,任何数据都是可以伪造的。我们往往会觉得Get的东西暴露在浏览器地址上,里面的参数不安全,Post过来的数据因为不暴露就安全,然后会信任Cookie中的数据做一些权限控制,会用头里面的一些数据做一些安全性控制。我们需要从根子里面有这个意识所有客户端的东西可以用但不能不经过判断直接相信。例如:登录后的UserID应该是保存在服务端的,我们根据SessionID在服务端获得的,我们需要全面排查代码,不允许在Controller的方法里存在类似于用户ID这样的字段。

  3、开发层面:数据就是数据代码就是代码。

    对于客户端过来的任何信息应该都只是数据,应该很少会让客户端来告诉服务端执行的代码。第一客户端过来的数据需要让它当成数据来处理,不管是Encoding一下也好,SQL参数化(Mybatis的$和#问题)也好都是这个方面的措施(从前到后一路数据都以数据的身份在程序中流转),第二从数据库里出来的东西也只能是数据不能让它变为HTML或JS代码,也需要Encoding一次再在客户端上呈现。我们应该从根源上去让数据只可能成为数据。

  4、开发层面:用户看不到不等于黑客看不到

    随着前后端的分离,现在很多请求都是AJAX请求,AJAX请求会有几方面的安全疏漏:

      ①逻辑分散而明确。(方法名称的易理解性)

      ②容易觉得AJAX请求是前端程序发起的而忽略权限问题

      ③服务端返回了过多的数据,这是比较危险的事情,因为有一些内部的字段会返回出去。

      ④服务端返回的数据列对应了数据库实际的列,相当于暴露了表结构,对于以后各种API的尝试和注入极端危险。

      ⑤一些敏感的数据也直接返回给客户端了,虽然客户端不会展现出来,但是对于黑客来说根本不在于用户看得到看不到这些数据。

   这就要求我们在做设计的时候尽可能仔细审视AJAX的接口的权限、数据开放性和脱敏等问题。

原文章: https://mp.weixin.qq.com/s/gd-XqGGh08o-vWFZSR0RJg?tdsourcetag=s_pctim_aiomsg

转载于:https://www.cnblogs.com/zhao-teng-ass/p/10549821.html

云时代架构--阅读笔记03相关推荐

  1. 云时代架构阅读笔记二——Java性能优化(二)

    承接上文Java性能优化(一)https://www.cnblogs.com/guo-xu/p/11019267.html 4)尽量确定StringBuffer的容量 在说和这个标题相关之前,先说一下 ...

  2. 云时代架构阅读笔记十五——架构设计思维(一)

    对于架构设计人们已经提出了许多方法,分类为:工件驱动的方法:用例驱动的法:模式驱动的方法:领域驱动的方法.一个经典的架构设计过程模型,沿用了RUP中迭代增量的思想,由分析.描述.选择.构造和组合5个阶 ...

  3. 云时代架构阅读笔记十三——你的系统如何处理高并发?

    1 从最基础的地方做起,优化我们写的代码,减少必要的资源浪费. a.避免频繁的使用new对象,对于整个应用只需要存在一个实例的类,我们可以使用单例模式.对于String连接操作,使用StringBuf ...

  4. 云时代架构阅读笔记二——一次CPU负载超高的分析

    本文为转载,博客原地址:http://www.jianshu.com/p/4a6fe6c82311 上线发号器,发现该进程的cpu占用率很高,接近100% . top结果如下: 查询具体的线程cpu占 ...

  5. “云时代架构”经典文章阅读感想十二

    云时代架构"经典文章阅读感想十二 (牛逼的架构师是怎么炼成的?) 前几周阅读的三四十岁的大龄程序员,应该如何保持自己的职场竞争力?中提到如何在35岁左右可以实现掌握有核心竞争力.其中之一便是 ...

  6. “云时代架构”经典文章阅读感想十六

    云时代架构"经典文章阅读感想十六 (支付宝架构师眼中的高并发架构) 经过这一学期的阅读,看到最多的一个名词就是高并发. 高并发高并发经常会发生在有大活跃用户量,用户高聚集的业务场景中,如:秒 ...

  7. “云时代架构”经典文章阅读感想八

    "云时代架构"经典文章阅读感想八 (支持百万连接的系统应该如何设计其高并发架构) 连接共分为四个步骤:1建立连接.2.发送请求.3.返回响应.4.断开连接.系统通信就是通过建立连接 ...

  8. 云时代架构系列经典技术书籍

    云时代架构系列经典技术书籍包括: 1. <分布式服务架构:原理.设计与实战> 2. <可伸缩服务架构:框架与中间件> 3. <互联网轻量级框架SSM源码解密> 4. ...

  9. [云炬ThinkPython阅读笔记]2.6 字符串运算

    [云炬ThinkPython阅读笔记]1.8 术语表

最新文章

  1. MindInsight计算图可视设计
  2. android多媒体图文混排,干货!!!Android富文本实现图文混排
  3. 深耕智能制造和超高清视频领域,思谋科技获数千万美元融资
  4. R语言无序多分类Logistic回归模型实战
  5. linux内核空间open,Linux内核源码分析 - open
  6. 基于指令和混合的前端通用埋点方案
  7. zblog php版调用代码,zblog PHP分类列表调用方法
  8. PHP中的Trait方法
  9. ABB 机器人 IRBP系列转台的一段代码注释
  10. Linux 远程开机(walk on lan)
  11. Python机器学习:梯度下降法009更多讨论
  12. 真正解决办法:编译freeswitch错误,You must install libavformat-dev to build mod_av
  13. R-squared与Adjust R-squared
  14. 【2021 年 MathorCup 高校数学建模挑战赛—赛道A二手车估价问题】2 问题一 数据预处理、特征工程及模型训练Baseline 和数据
  15. 速率法和终点法的区别_两点法终点法速率法.doc
  16. 英雄无敌6服务器在哪个文件夹,英雄无敌6无法进入游戏解决方法_单机攻略_快吧单机游戏...
  17. 大数据培训:hadoop基础教程
  18. qq空间java版_Java版 QQ空间自动登录无需拷贝cookie一天抓取30WQQ说说数据流程分析【转】...
  19. Opencv不显示图片
  20. Oracle数据库数据查询语句示例(包含大部分常用语句)

热门文章

  1. 使用pyspider爬取巨量淘宝MM图片
  2. 有多少种方法能把足球移出边界 Out of Boundary Paths
  3. 一个ASP站内搜索的实例源代码
  4. 学生系统优化(一)- - 字符限定
  5. 狡猾无比的超级网络间谍
  6. 从工具到社区,美图秀秀大规模性能优化实践
  7. 用 ArrayList 还是 LinkedList?
  8. 10个Eclipse珍藏插件推荐
  9. Java 洛谷 P1151 子数整数
  10. 基于linux的java学习,Java学习---Linux总结