基础问题

2018-03-06 23:14 更新

问.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
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号