常见web攻击-客户端脚本安全


本文来自:gglinux,原文地址:http://blog.csdn.net/gglinux/article/details/45538889,转载请注明

XSS攻击

跨站脚本攻击。攻击者向网站恶意添加前端代码(js,html,css都有可能)。当用户浏览时,这段恶意代码得以执行,便可能造成攻击,如盗取用户cookie,破坏页面结构,跳转到其他网站等。
http://www.cnblogs.com/TankXiao/archive/2012/03/21/2337194.html

反射型XSS

1.含义:将用户输入的数据通过后端直接输出
2. 实例:get参数,用户输入伪造get参数后,输出参数便可能导致攻击
3. 特点:get参数被伪造
4. 解决方案:1:对get参数进行过滤。如果要输出内容,将其中的“<”,”>”,” ‘ “,”&”,” “ “等转义输出,避免浏览器在输出时解析js代码,造成污染。2:验证get参数,判断是否满足要求

存储型XSS

  1. 含义:数据保存到后台数据库之后,再将数据直接输出
  2. 实例:网络博客,博客保存到数据库之后,博客内容含有恶意的js代码,js代码输出得以执行,导致攻击
  3. 特点:影响时间久,内容被存放到数据库
  4. 防范方法:1:对输出数据进行过滤,转义”<“,”>”,” ’ “, ” “,”&”等标签。2:设置cookie的值为http only。

    php设置方法

header("Set-Cookie: hidden=value; httpOnly"); 

基于DOM的XSS

  1. 含义:通过将内容,添加到DOM 上,造成恶意代码嵌入
  2. 实例:网络聊天,直接将输入内容输出到DOM中,便会造成攻击
  3. 特点:类似于反射性XSS,表单(输入框)输入内容被伪造
  4. 防范方法: 针对以上几种XSS攻击都有效
1:设置cookie标记为http only
2:只允许用户输入我们期望的数据。 例如: 年龄的textbox中,只允许用户输入数字。 而数字之外的字符都过滤掉。
3:对数据进行Html Encode 处理
4:过滤或移除特殊的Html标签, 例如: <script>, <iframe> , &lt; for <, &gt; for >, &quot for
5:过滤JavaScript 事件的标签。例如 "onclick=", "onfocus" 等等。

CSRF 跨站点请求伪造

http://www.cnblogs.com/dolphinX/p/3403520.html

  1. 实例:在打开Qzone时,QQ弹出中奖信息。你点击进去,网页代码信息是<img alt="" arc="http://www.qzone.com/list.php?action=delete&id=12"/>。因为用户已经登录了,session信息已经存在,get请求会被实现。(当然腾讯不会这么笨了)
  2. 特点:利用session(会话机制),在当前会话中产生破坏操作。
  3. 防范方法:
 1. 使用post,不使用get修改信息
2. 验证码,所有表单的提交需要验证码,但是貌似用起来很麻烦,所以一些关键的操作可以
3. 在表单中预先植入一些加密信息,验证请求是此表单发送

ClickJacking点击劫持

https://www.owasp.org/index.php/Clickjacking

  1. 含义:是一种视觉上的欺骗手段,通过伪造一个透明的iframe。当用户点击当前网站上功能型按钮,实际上点击的是iframe上的按钮
  2. 防范方法:
1:设置X-Frame-Options,防止页面被frame
设置方法的链接:http://www.css88.com/archives/5141
apache:Header always append X-Frame-Options SAMEORIGIN
nginx:add_header X-Frame-Options SAMEORIGIN;
2:设置代码使其不能被frame,例如
(function () {
if (window != window.top) {
window.top.location.replace(window.location); //或者干别的事情
}
})();
智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告