xss
1、用户输入什么直接显示在页面中,导致被恶意输入
<img src=xxx onerror='alert(1)'></img>
<img src=""><script>alert(document.cookie)<\/script>>
<script>alert(document.cookie)<\/script>
2、如果用户输入的前端没有校验发送给服务端,服务也没有校验,那么重新获取时就会出现攻击
解决:前端后台都需要对用户的输入进行校验、转义,url上也需要转义
csrf
如果用户在一个页面中登录后,用户信息保存到cookie中后, 当用户点击一个广告跳转到一个恶意网站,其中如果利用form来自动请求,会带着用户之前的cookie。此时如果是个转账操作就很危险
<form name='myform' style="visibility: hidden" method="post" action="http://localhost:3000/pay">
<input type="text" name="username" value="kimi">
<input type="text" name="amount" value="1000">
</form>
document.myform.submit();
解决:
1、尽量不要存到cookie中
2、使用token,cookie会自动发送,而token则需要手动加上
3、判断refer来源,如果请求来源于非法则不响应
点击劫持
遮盖一层iframe设置透明,点击页面按钮其实点的是iframe中的按钮。
解决:判断请求头是否从iframe发起,如果是的话禁止
sql注入
用户输入sql语句到服务,服务直接执行导致sql崩溃
解决:对用户输入都不可信,前后端都需要校验
dns劫持
拦截dns域名解析,使其转换成一个假的ip。从而使用户跳转到假的网页
解决:不要动态获取dns解析地址,手动设置
网友评论