《白帽子将Web安全》摘抄

1.注入攻击是应用违背了"数据与代码分离原则"导致的结果。它有两个条件:一是用户能够控制数据的输入;二是代码拼凑了用户输入的数据,把数据当做代码执行了。

2.要完成webshell的攻击,要满足一下几个条件:

  (1) 上传的文件能够被Web容器解释执行。所以文件上传后所在的目录要是Web容器所覆盖到的路径。

  (2) 其次,用户能够从Web上访问这个文件。如果文件上传了,但用户无法通过Web访问,或者无法使得Web容器解释这个脚本,那么也不能称之为漏洞。

  (3) 最后,用户上传的文件若被安全检查、格式化、图片压缩等功能改变了内容,则也可能导致攻击不成功。

3.设计安全的文件上传功能

 (1) 文件上传的目录设置为不可执行

 (2) 判断文件类型

 (3) 使用随机数改写文件名和文件路径

 (4) 单独设置文件服务器的域名

4.目前黑客们广泛使用的一种破解MD5后密码的方法是"彩虹表"。

 彩虹表的思路是收集尽可能多的密码明文和明文对应的MD5值。这样只需要查询MD5值,就能找到该MD5值对应的明文。

5.解决Session Fixation的正确做法是,在登录完成后,重写SessionID。

6.完整的CSRF防御方案,对于Web框架来说有以下几处地方需要改动:

  (1) 在Session中绑定token。如果不能保存到服务器端Session中,则可以替代为保存到Cookie里。

  (2) 在form表单中自动填入token字段,比如

  (3) 在Ajax请求中自动添加token,这可能需要已有的Ajax封装实心的支持。

  (4) 在服务器端对比POST提交参数的token与Session中绑定的token是否一致,已验证CSRF攻击。

7.Cookie中的HTTPOnly Flag,告诉浏览器不要让Javascript访问该Cookie,在Session劫持等问题上有着积极的意义,而且成本非常小。

一般来说,框架会提供一个统一的设置Cookie函数,HttpOnly的功能可以在此函数中实现;如果没有这样的函数,则需要统一在HTTP返回头中配置实现。

8.Web框架本身也是应用程序的一个组成部分,只是这个组成部分较为特殊,处于基础和底层的位置。但我们不能迷信于Web框架本身。很多Web框架提供的安全解决方案有时并不可靠,我们仍然需要自己实现一个更好的方案。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部