django 常见web攻击及防范
from 慕课实战-强力Django+杀手级Xadmin打造在线教育平台
sql注入攻击与防范
sql注入的危害
- 非法读取、篡改、删除数据库中的数据
- 盗取用户的各类敏感信息,获取利益
- 通过修改数据库来修改网页上的内容
- 注入木马等
在参数中加入sql语句,没有对输入做安全性验证。
如在用户登录界面输入用户名:’ OR 1=1# 密码:任意输入
发现可以获取到我们数据库里面的用户名和密码。
xss攻击与防范
xss跨站脚本攻击(Cross Site Scripting)的危害
- 盗取各类用户账号,如用户网银账号、各类管理员账号
- 盗窃企业重要的具有商业价值的资料
- 非法转账
- 控制受害者机器向其他网站发起攻击、注入木马等等
xss攻击流程
xss攻击防护
- 首先代码里对用户输入的地方和变量都需要仔细检查长度和对<>;’等字符做过滤
- 避免直接在cookie中泄漏用户隐私,例如email、密码等
- 通过使cookie和系统ip绑定来降低cookie泄漏后的危险
- 尽量采用POST而非GET提交表单
csrf攻击与防范
csrf跨站请求伪造(Cross-site request forgery)的危害
- 以你的名义发送邮件
- 盗取你的账号
- 购买商品
-
虚拟货币转账
CSRF攻击流程:
例:
黑客服务器向用户返回Html中插入了一个图片,这个image实际是向某账户转10亿,浏览器会加载图片,默认发送这个请求。如果用户访问某信任网站A,这时用户再添加一个标签,此时信任网站cookie还未失效,再访问危险网站,这时就相当于向信任网站A发送请求,进行转账
CSRF攻击防范:
每个form里面加上 {{csrf_token}}