XSS攻击XSS(crosssitescript,跨网站脚本攻击)是一种向网页注入恶意脚本,在用户浏览网页时在用户浏览器上运行恶意脚本的攻击方式
跨网站脚本攻击有两种形式。
反射攻击(让用户单击嵌入恶意脚本的链接以实现攻击目标。 现在,很多攻击者利用论坛和微博发布包含恶意脚本的URL就是这种方式。 )持久攻击)将恶意脚本提交给受攻击站点的数据库,当用户浏览网页时,恶意脚本将从数据库加载到页面中执行,QQ邮箱的初始版本为持久跨站点XSS并不新鲜,但攻击手法不断改进。 主要有两种防止XSS的方法:消毒(转义危险字符)和防止HttpOnly ) XSS攻击者窃取cookie数据。 XSS的预防措施主要有三个:
编码:
对用户输入的数据进行HTML Entity编码。
Encode的作用是转换某些字符,如$var,使浏览器在最终输出中保持相同。 过滤:
删除用户输入的与事件相关的属性。 例如,onerror可以自动触发攻击,也可以是onclick等。 一般来说,过滤不安全的内容。 删除用户输入的样式节点、脚本节点和Iframe节点。 (特别是脚本节点支持跨域。 请务必删除)。 校对
请不要直接解码HTML Entity。 使用DOM Parse转换修改未配对的DOM标签。 CSRF攻击CSRF攻击(Cross Site Request Forgery,伪造跨网站请求)是攻击者通过跨网站请求,以合法用户身份进行非法操作(例如转账或发布)。
CSRF的原理是利用浏览器的Cookie或服务器的Session来窃取用户的身份
由于令牌和验证都具有一次性消费的特点,原理上一致,但验证码是不良的用户体验,如果不需要,请不要轻易使用验证码。 现在,很多网站在短时间内多次提交表单都没有成功后要求提供验证码,可以获得良好的用户体验。
CRF如何防御
wxdby,Token验证:(使用最多)
)1)服务器向客户端发送token
)2)客户端提交的表单中包含此token。
)3)如果该token不合法,则服务器拒绝该请求。
方法2 )隐藏令牌(将token隐藏在http的头标中。
方法2与wxdby有点相似,但本质上没有太大的区别。 只是使用方法有差异。
方法三、Referer验证: Referer是页面请求方。 意思是只有接受本站的请求,服务器才会做出响应; 否则,我会拦截。
差异1 :
CRF :用户必须先登录网站a,获得cookie。 XSS :不需要登录。
差异2 ()原理的差异) ) )。
CRF :是利用站点a自身的漏洞,请求站点a的api。 XSS :向网站a注入JS代码,执行JS内的代码,篡改网站a的内容。