这个话题十几年前就提出过,简单说就是登录过的用户又访问一个危险网站,危险网站窃取cooike获取登录身份信息,利用这些信息伪装用户操作。同期还有sql漏洞攻击(让系统报错暴露sql语句,从而获取数据库信息),xxs跨站脚本(通过表单输入方式植入木马等程序),这些当时都做了对应的策略:
1、CSRF:通过服务端验证HTTP Referer,排除非本站的访问,我们常用的token验证方法就是防范CSRF的,在http头增加属性来验证,这样阻止CSRF。
2、sql注入:在程序中定义sql语句要通过对象来装载sql语句,不要直接暴露sql语句字符串,且要做好异常处理,捕获异常,不要直接报错,错误信息暴露系统信息,当然后来很多数据连接操作工具之类的避免了这种情况的发生例如:java的myBatis,.net的dbhelper等
3、xxs跨站脚本:限制表单的输入内容,过滤非法字符等,输入的内容转码为字符串再做对应的处理
这是好多年前考虑的问题,现在的话只要前后端分离,爬虫还是很难很难防的,不如以前不分离的时候安全,因为伪造客户端很容易,没法伪造整个系统,token的验证机制再复杂,依然可以完全克隆整个客户端包括请求响应头、证书、随机码、密钥等,找了一篇关于防爬虫的文章,讲的比较详细,链接为防止爬虫的手段_反爬虫,到底是怎么回事儿?十分钟搞定它!_Valentina瓦贝勒的博客-CSDN博客
是这位作者的原创,感兴趣可以看一下,但我认为,都无法从根本解决防爬虫问题,这是前后端分离的死穴。