1、sql注入
1) 避免使用$拼接查询语句,用#
2)用户名录入 ‘ or 1=1 —(注释符号)
select
1
from
users
where
userid=
''
or
1=1
—'
2、XSS,注入html代码
1)反射型:诱导点击带有恶意脚本的url。
比如:构造链接,当用户点击链接时,获取用户的cookie,并发布给搜集cookie的文件。
比如链接中构造恶意js参数,导致页面执行js内容,
比如搜索的关键字会展示到页面上的情况,关键字录入js
2)存储型:写库,比如评论。输入内容校验,比如<> “ ‘ % ; () & +
3、越权
1)拼url进入,未校验权限
2)需要权限校验的页面,拼不同参数,看是否有权限校验
3)多阶段功能:是否对关键的操作做权限校验,可绕过1,2校验,进行第3步操作,比如修改密码时,未校验账户权限
4)权限校验不能仅依赖前端传的pin,比如thor进行解密获取pin是否和传的pin一致
4、CSRF:跨站点攻击,盗用身份进行恶意请求
1)referer验证,去掉referer,如果能成功访问,说明有问题
2)用户修改删除行为最好都用post
3)添加token
5、文件上传
1)格式限制,修改上传文件的后缀为(.html、.asp、.jsp、.php等测试黑名单),看是否可上传
2)服务端判断Content-Type,修改HTTP上传请求中的后缀,以及content-type类型,如修改为text/html或image/gif再次进行上传
3)后缀大小写绕过
6、文件下载
1)不能让用户指定下载文件在服务器的路径
2)权限校验
7、用户敏感信息
1)业务系统尽量不要转存
2)不能存储在客户端
3)不要展示在页面上、输出到日志文件中