Django常见的Web攻击以及如何防范
sql注入攻击和防范
-
危害
- 非法读取篡改删除数据库中的数据
- 盗取用户的各类敏感信息,获取利益
- 通过修改数据库来修改网页上的内容
- 注入木马
-
方法
- 通过在表单中注入一些sql语句,比如 OR 1=1 # 获得登陆的效果.# 在sql中是注释的意思
- 通过在表单中注入一些sql语句,比如 OR 1=1 # 获得登陆的效果.# 在sql中是注释的意思
-
Django如何做
- 表单验证
- 前端表单验证
- 后端进行表单验证
- 自定义查询用户登陆的逻辑
- django的orm会对特殊字符转义,orm会确保用户输入数据的安全性(最重要的地方)
- 表单验证
xss攻击和防范
- xss跨站脚本攻击(Cross Site Scripting)的危害
- 盗取 各类用户账号,如用户网银账号,各类管理员账号
- 盗取企业重要的具有商业价值的资料
- 非法转账
- 控制受害者及其向其他网站发起攻击,注入木马等等
- 攻击流程
- xss攻击防护
- 首先代码中对用户输入的地方二号变量都需要仔细检查长度和对"< > , ; ’ "等字符做过滤.
- 避免直接在cookie中泄露用户隐私,例如emaill,密码等通过cookie和系统ip绑定来降低cookie泄露的危险.
- 尽量采用post而非GET提交表单
csrf攻击和防范
- CSRF跨站请求伪造(Cross-site request forgery)的危害
- 以你的名义发邮件
- 盗取你的账号
- 购买商品
- 虚拟货币转账
- 攻击原理
- Django解决办法
- 提交表单的时候使用{% csrf_token %}来保证安全