9.3.4 漏洞防范
2025年09月26日
9.3.4 漏洞防范
防御CSRF漏洞的最主要问题是解决可信的问题,即使是管理员权限提交到服务器的数据,也不一定是完全可信的,所以针对CSRF的防御有以下两点:
(1)增加token/referer验证避免img标签请求的水坑攻击;
(2)增加验证码。
1.Token验证
Token翻译中文为“标志”,在计算机认证领域叫令牌。验证Token的方式是目前使用的最多的一种,也是效果最好的一种,可以简单理解成在页面或者cookie里面加一个不可预测的字符串,服务器在接收操作请求的时候只要验证下这个字符串是不是上次访问留下的即可判断是不是可信请求,因为如果没有访问上一个页面,是无法得到这个Token的,除非结合XSS漏洞或者有其他手段能获得通信数据。
Token的实现代码:
运行结果,如果请求里面的Token值跟服务器端的一致,则输出“success”,否则输出“failed”。
2.验证码验证
验证码验证没有Token那么实用,考虑到用户体验,不可能让用户每个页面都去输入一次验证码,所以一般这种方式只用在敏感操作的页面,比如像登录页面,实现方式跟Token差不多,这里就不再详细给出代码。
总结
通过本章的学习,我们了解了SQL注入是一种比较常见的注入方式,我们需要在跟用户有交互的表单以及URL地址进行严格校验,避免不法用户钻空子。XSS漏洞分为反射型跟存储型,防范方面要更加注意。最后我们还了解了CSRF漏洞,注意做好用户身份验证就能有效避免。
作业
优化自己以前项目中关于本章讲解的漏洞,运用本章学习的内容先尝试性的进入攻击,然后修改代码,保证项目运行安全。