1.csrf和xss的定义
XSS(跨站脚本攻击):恶意攻击者往 Web 页面里插入恶意 Script 代码,当用户浏览该页之时,嵌入其中 Web 里面的 Script 代码会被执行,从而达到恶意攻击用户的目的。
CSRF(跨域请求伪造):CSRF 攻击是攻击者借助受害者的 Cookie 骗取服务器的信任,可以在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击服务器,从而在并未授权的情况下执行在权限保护之下的操作
如何防止csrf 和 xss
xss:
1.对用户输入的内容进行验证和替换。例如:& 替换 为& < 替换为 <;> 替换为> ;/ 替换为 /等等
2.移除用户输入的和事件相关的属性。如onerror可以自动触发攻击,还有onclick等。移除用户输入的Style节点、Script节点、Iframe节点。(尤其是Script节点,它可是支持跨域的呀,一定要移除)
csrf:
1.Token 验证:客户端提交的表单中带着这个token,如果这个 token 不合法,那么服务器拒绝这个请求。也可把 token 隐藏在 http 的 head头中。
2.Referer 验证:Referer 指的是页面请求来源。意思是,只接受本站的请求,服务器才做响应;如果不是,就拦截。