1.Sql注入
攻击者把sql命令插入到web表单的输入域或页面请求的查询字符串,
欺骗服务器执行恶意的sql命令
防御措施
前端:
1.正则验证字符串格式
2.过滤字符串的非法字符
后端:
1.不要直接拼接sql,要使用参数化查询
2.使用存储过程代替sql查询
2.XSS(Cross site Scripting,跨站脚本攻击)
就是脚本注入攻击。常见的有反射型(非持久性),存储型(持久性)等。
反射型
将js脚本添加到查询字符串中,将含有脚本的链接传播为用户,用户点开链接,
脚本会执行,客户获取用户cookie,或执行其他危险操作。
存储型
通过表单输入将脚本存储到服务器的数据库中,当其他人打开页面的时候,脚本
就会执行,可以获取用户cookie,或修改用户界面显示等操作。
防御措施
前端:
1.对用户输入进行校验,过滤,编码和转义
后端:
1.对输入的字符进行过滤,编码,替换
2.对输出的字符进行编码
3.CSRF(Cross site request forgery,跨站请求伪造)
模拟网站用户想网站发起请求,进行非法操作或得到非法结果。
防御措施
1.验证Http Referer的值
验证http头部的referer,判断请求来源是合法的地址,才进行处理,
否则拒绝响应。
2.使用请求令牌
访问页面时,服务端在页面写入一个随机token,并设置token过期时间。
请求必须带上token,请求过的token会失效,无法再用。此种token方法
也可以防止表单重复提交,在登录等安全性要求高的页面,使用验证码
3.幂等的GET请求
GET请求不要执行任何修改数据操作,仅通过POST,PUT,DELETE请求修改网站内容
4.防盗链
盗链会增加服务器的负担。盗链主要是对网站图片,视频以及其他资源文件的下载。
防御措施
判断ip地址和域名,只有白名单中的ip和域名才能返回资源,否则,
不予处理,或者返回一个网站logo。