Django-常见的web攻击,及如何防止

一.sql注入攻击及防范

1.危害

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

2.防范

  • django的orm查询和form表单验证都过滤了sql注入攻击

3.漏洞原理

  • 若用原生的查询方式,可以通过输入单引号 1=1(如:‘OR 1=1#)等特殊字符使原生的SQL语句代码被改变。

4.防范原理

  • 转义 单引号 1=1(如:‘OR 1=1#)等特殊字符


二.XSS(跨站脚本攻击)攻击及防范

1.危害

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

2.防范

  • 表单验证长度
  • 尽量采用POST而非GET提交表单
  • 避免直接在cookie中泄漏用户隐私

3.漏洞原理

  • 网站地址后面会带参数,如name='iphone6'
  • 黑客发现漏洞后,将name='iphone6'改为:name=,将传递了js代码(这个代码看黑客怎么写)
  • 黑客装作原网站给受害者发送了一个带有该js代码参数的网站链接
  • 黑客获得cookie
  • 黑客就可以伪装受害者获取受害者的信息。
  • 总结:漏洞就是后端中没有过滤xss攻击的代码字段

4.防范原理

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

三.csrf(跨站请求伪造)攻击及防范

1.危害

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

2.防范

  • 表单提交中添加{% csrf_token %}

3.漏洞原理

  • 黑客知道mybank网站的转账流程
  • 受害者在没有登出A网站的情况下访问黑客的网站
  • 黑客的网站有一个图片,图片的url地址是A网站的一个请求转账的url,如:
  • 或者网站加载过程,js代码就默默的提交请求。
  • 受害者点击图片就在不知情的情况下转账给了黑客1000块钱

4.防范原理

  • 后端接收csrf_token值进行判断

你可能感兴趣的:(python,Django,html)