一.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=<script>x=document.cookie;alert(x);</script>,将传递了js代码(这个代码看黑客怎么写)
- 黑客装作原网站给受害者发送了一个带有该js代码参数的网站链接
- 黑客获得cookie
- 黑客就可以伪装受害者获取受害者的信息。
- 总结:漏洞就是后端中没有过滤xss攻击的代码字段
4.防范原理
- 首先代码里对用户输入的地方和变量都需要仔细检查长度和对 < , > , ; , ' 等字符做过滤。转义特殊字符。
- 避免直接在cookie中泄漏用户隐私,例如email、密码等等通过使cookie和系统ip绑定来降低cookie泄漏后的危险
- 尽量采用POST而非GET提交表单
三.csrf(跨站请求伪造)攻击及防范
1.危害
- 以受害者的名义发送邮件
- 盗取受害者的账号
- 购买商品
- 虚拟货币的转账
2.防范
- 表单提交中添加{% csrf_token %}
3.漏洞原理
- 黑客知道mybank网站的转账流程
- 受害者在没有登出A网站的情况下访问黑客的网站
- 黑客的网站有一个图片,图片的url地址是A网站的一个请求转账的url,如:<img src=http://www.mybank.com/Transfer/toBankId=11 & money=1000 >
- 或者网站加载过程,js代码就默默的提交请求。
- 受害者点击图片就在不知情的情况下转账给了黑客1000块钱
4.防范原理
- 后端接收csrf_token值进行判断