crsf与xss详细讲解

问.xss是什么?运行原理?攻击方式?如何预防?

是什么:

xss俗称跨站脚本攻击(cross site Scripting),攻击者通过在网页中添加恶意的script代码,当用户请求网页时,执行恶意的script代码,以达到攻击目的。

运行原理:

攻击者对含有漏洞的服务器发起XSS攻击(注入JS代码)。

诱使受害者打开受到攻击的服务器URL。

受害者在Web浏览器中打开URL,恶意脚本执行。

攻击类型:

反射型: 发出请求时,XSS代码出现在URL中,作为输入提交到服务器端,服务器端解析后响应,XSS随响应内容一起返回给浏览器,最后浏览器解析执行XSS代码,这个过程就像一次发射,所以叫反射型XSS。

存储型XSS和反射型的XSS差别就在于,存储型的XSS提交的代码会存储在服务器端(数据库,内存,文件系统等),下次请求目标页面时不用再提交XSS代码。

如何预防:

编码防御:对用户输入的数据进行HTML Entity编码

编码过滤:移除用户上传的DOM属性,如onerror等,移除用户上传的style节点,script节点,iframe节点。例如PHP语言可以使用htmlspecialchars()函数将数据转实体。

编码校正:避免直接对HTML Entity编码,使用DOM Prase转换,校正不配对的DOM标签。

问.csrf是什么?运行原理?攻击方式?如何预防?

是什么:

csrf是跨站请求伪造。简单的说和xss跨站脚本攻击是一样的,但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对其进行防范的资源也相当稀少)和难以防范,所以被认为比XSS更具危险性。

运行原理:

登录受信任网站A,并在本地生成Cookie。

在不登出A的情况下,访问危险网站B。

攻击方式:

1.登录受信任网站A,并在本地生成Cookie。

2.在不登出A的情况下,访问危险网站B。

如何预防:

通过referer、token 或者验证码来检测用户提交。

尽量不要在页面的链接中暴露用户隐私信息。

对于用户修改删除等操作最好都使用post 操作 。

避免全站通用的cookie,严格设置cookie的域。

参考资料:https://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180307A0028N00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券