Django开发web安全防护
<1> sql注入攻击与防范
(1)、sql注入的危害
1、非法读取,篡改,删除数据库的中的数据;
2、盗取用户的各类敏感信息,获取利益;
3、通过修改数据库来修改网页上的内容;
4、注入木马等等;
(2)、sql注入的防范
1、对于用户的输入进行合法性判断;
2、参数中加入sql语句拼接字符串使之为真;
3、使用django的orm,它已经对这些做了处理;
<2> XSS攻击
(1)、XSS跨站脚本攻击(Cross Site Scripting)的危害
1、盗取用户各类账号,如用户网银账号,各类管理员账号;
2、盗取企业重要的具有商业价值的资料;
3、非法转账;
4、控制受害者的机器向其它网站发起攻击,注入木马等等;
正常流程:
http://www.bank.com/product/list/?name='iphone6'
当传入商品参数iphone6时,这个字符串会被显示在页面中!
http://www.bank.com/product/list/?name=<script>x=document.cookie;alert(x);<script>
将代码修改为js代码
攻击者拿到你的cookie信息,然后伪装成用户
(2)、XSS攻击防范
1、首先代码里对用户输入的地方和变量都需要仔细检查长度和对
"<" , ">" , "," ," ' "等字符做过滤;
2、避免直接在cookie中泄露用户隐私,列入email,密码等等通过使cookie
和系统ip绑定来降低cookie泄露之后的危险;
3、尽量使用POST而不是GET来提交表单数据;
<3> CSRF攻击与防护
(1)、csrf跨站请求伪造(Cross-site request forgery)的危害
1、以你的名义发邮件;
2、盗取你的账号;
3、购买商品;
4、虚拟货币转账;
用户并没有向a请求,而是访问了b。b要求用户访问a的。
原因:用户向a的每次请求都会带上session id
(2)、csrf跨站请求伪造的防范
*、提交form表单必须添加crsf token,攻击网站无法生成crsf token;