常见web安全漏洞:
一、XSS攻击
什么是XSS攻击
XSS攻击使用Javascript脚本注入进行攻击
1、例如在提交表单后,展示到另一个页面,可能会受到XSS脚本注入,读取本地cookie,token远程发送给黑客服务器端
2、例如支付订单提交后,通过Javascript脚本注入,跳转到钓鱼网站
解决办法:
编写过滤器拦截所有getParameter参数,将参数特殊字符转换成html源代码保存,注意,SpringBoot项目需要在启动类上加@ServletComponentScan注解
2、SQL注入攻击
什么是SQL注入攻击
利用现有应用程序,将(恶意)的SQL命令注入,让后台数据库执行一些恶意的操作,比如绕过登陆,恶意获取数据,恶意删除数据等等
解决办法:
不要使用拼接SQL语句方式、最好使用预编译方式,例如mybaits的sql语句传递参数最好使用#,因为#会预编译SQL语句,有效防止SQL注入攻击
3、CSRF攻击
什么是CSRF攻击
机器模拟请求,比如恶意注册
解决办法:
使用图形验证码,Nginx实现限流,配置黑名单和白名单
4、Http请求盗链攻击
什么是盗链攻击
恶意盗用图片、js等静态资源,占用带宽
或者,别人盗用图片链接为自己所用,比如A网站有一张图片,被B网站直接通过img标签属性引入,直接盗用A网站图片展示
解决办法:
项目图片编写过滤器,判断http请求头Referer域中的记录来源的值,如果和当前访问的域名不一致的情况下,说明该图片可能被其他服务器盗用
CDN加速动静分离的云服务器图片,设置黑名单和白名单防盗链,设置域名绑定防盗链