django 常见web攻击及防范

from 慕课实战-强力Django+杀手级Xadmin打造在线教育平台

sql注入攻击与防范

sql注入的危害

  • 非法读取、篡改、删除数据库中的数据
  • 盗取用户的各类敏感信息,获取利益
  • 通过修改数据库来修改网页上的内容
  • 注入木马等

在参数中加入sql语句,没有对输入做安全性验证。
如在用户登录界面输入用户名:’ OR 1=1# 密码:任意输入
发现可以获取到我们数据库里面的用户名和密码。

xss攻击与防范

xss跨站脚本攻击(Cross Site Scripting)的危害

  • 盗取各类用户账号,如用户网银账号、各类管理员账号
  • 盗窃企业重要的具有商业价值的资料
  • 非法转账
  • 控制受害者机器向其他网站发起攻击、注入木马等等

xss攻击流程
django 常见web攻击及防范

django 常见web攻击及防范

xss攻击防护

  • 首先代码里对用户输入的地方和变量都需要仔细检查长度和对<>;’等字符做过滤
  • 避免直接在cookie中泄漏用户隐私,例如email、密码等
  • 通过使cookie和系统ip绑定来降低cookie泄漏后的危险
  • 尽量采用POST而非GET提交表单

csrf攻击与防范

csrf跨站请求伪造(Cross-site request forgery)的危害

  • 以你的名义发送邮件
  • 盗取你的账号
  • 购买商品
  • 虚拟货币转账

    CSRF攻击流程:
    django 常见web攻击及防范

例:
黑客服务器向用户返回Html中插入了一个图片,这个image实际是向某账户转10亿,浏览器会加载图片,默认发送这个请求。如果用户访问某信任网站A,这时用户再添加一个标签,此时信任网站cookie还未失效,再访问危险网站,这时就相当于向信任网站A发送请求,进行转账

CSRF攻击防范:
  每个form里面加上 {{csrf_token}}