作为一个前端工程师,XSS漏洞不应该只是安全部门的工作。在项目上马的时候就应该对可能涉及的安全问题有所预防才是有一个好前端。- -
 
什么是XSS
•跨站脚本攻击(Cross-site scripting, XSS)
• 是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了HTML以及用户端脚本语言。
 
XSS分类
• 反射型
• 存储型
• DOM型
 
防治XSS,个人觉得核心内容就是不能相信任何用户输入的数据。
所以凡是前端要操作用户数据的地方,全部要转义。
 
当然。简单一句话,当然不容易处理这样的情况。因为如果每一个方法都要去做一个encode那真是程序员的灾难。
 
那就分情况讨论下。
 
我们会在什么地方碰到XSS:
凡是数据可以被用户构造的位置。
1.用户输入数据,然后被输出。
如果用户输入<script>location.href='www.cnblog.com/bugluo'</script>,被转发围脖,嗯嗯。用户全跑我这来了。
所以我们可以怎么做?
若,我们使用smarty这样的后端模板。我们可以在编译平台做类似上线前自动加encode方法的功能。
若,我们使用前端直接生成html,拼接html时,注意用$.text()方法,而不要使用$.html(''),或者使用cratedom的方式。
 
2.富文本编辑器。
富文本编辑器非常容易出现一个问题,就是dom被构造,例如:
<a onclick="location.href='你懂的'"></a>
事件中:eval  setTimeout/setInterval    document.write   new Function()   String.fromCharCode   前端模板
 

有这么多xss攻击的漏洞地方,我们该怎么防范呢?

1.不要相信用户的任何输入
2.过滤
3.转义
 
不要相信用户的任何输入:白名单机制,只有被允许的事件才能够去执行,只有被允许的内容才能够显示
过滤掉任何可能造成xss的内容。
将特殊的字符转义:$^*()+={}[]|/:<>.?'" 
 
文本过滤,由于XSS漏洞会慢慢被挖掘出来,绵绵不绝。所以白名单机制能够更好的满足防XSS的需求,但是会造成可配置性大大降低。
转义:
function smarty_modifier(str){
     $str = strval(str);
   return str_replace(array('\\','&',……,array('\\\\','$amp;',……),str)
}
直接上代码通俗易懂。

随便讲讲XSS攻击的更多相关文章

  1. Spring MVC里面xss攻击的预防

    关于xss的介绍可以看 Asp.net安全架构之1:xss(跨站脚本)和 腾讯微博的XSS攻击漏洞 网页, 具体我就讲讲Spring MVC里面的预防: 第一种方法,使用Spring MVC web. ...

  2. 防御XSS攻击-encode用户输入内容的重要性

    一.开场先科普下XSS 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS.恶 ...

  3. 防止XSS攻击的方法

    什么是XSS? 使用Jsoup来防止XSS攻击 Jsoup官网 Jsoup中文 maven包引入 <dependency> <groupId>org.jsoup</gro ...

  4. PHP通用的XSS攻击过滤函数,Discuz系统中 防止XSS漏洞攻击,过滤HTML危险标签属性的PHP函数

    XSS攻击在最近很是流行,往往在某段代码里一不小心就会被人放上XSS攻击的代码,看到国外有人写上了函数,咱也偷偷懒,悄悄的贴上来... 原文如下: The goal of this function ...

  5. 前端XSS攻击和防御

    xss跨站脚本攻击(Cross Site Scripting),是一种经常出现在web应用中的计算机安全漏洞,指攻击者在网页中嵌入客户端脚本(例如JavaScript), 当用户浏览此网页时,脚本就会 ...

  6. XSS攻击及防御

    XSS又称CSS,全称Cross SiteScript,跨站脚本攻击,是Web程序中常见的漏洞,XSS属于被动式且用于客户端的攻击方式,所以容易被忽略其危害性.其原理是攻击者向有XSS漏洞的网站中输入 ...

  7. XSS攻击

    什么是XSS? http://www.cnblogs.com/bangerlee/archive/2013/04/06/3002142.html XSS攻击及防御? http://blog.csdn. ...

  8. 文本XSS攻击过滤

    在FCK或百度编辑器等常用富文本编辑器中,通常是会被XSS攻击 处理方法: 文本框模拟输入了以下文本 <span style="dispaly:none" onclick=& ...

  9. XSS攻击的解决方法

    在我上一篇<前端安全之XSS攻击>文中,并没有把XSS攻击的解决办法说完整,而XSS的攻击又那么五花八门,有没有一招“独孤九剑”能够抗衡,毕竟那么多情况场景,开发人员无法一一照顾过来,而今 ...

随机推荐

  1. JS通用方法扩展

    /* * 系统中JS的扩展函数 * * */ // 清除两边的空格 String.prototype.trim = function() { returnthis.replace(/(^\s*)|(\ ...

  2. hdu1107武术(模拟题)

    Problem Description 在一个12行12方柱武侠世界,少林.武当峨眉武术弟子的三派,自相残杀主宰. 林世界的第一行的一列格子的坐标是(1, 1),第一行第二列坐标是(1, 2)--右下 ...

  3. String不变性

    String不变性理解类型: String x = "java"; System.out.println(x);//输出为java x.concat("java" ...

  4. 【Swift】沙盒缓存

    本地sandbox缓存目录     沙盒の 主目录: po NSHomeDirectory()   /Users/SpongeBob/Library/Developer/CoreSimulator/D ...

  5. Linux svnserver存储路径和文件的详细解释

    svn有两种存储方式:BDB和FSFS,眼下用的最多的是FSFS方式,这样的方式的话.通常是存储在\db\revs目录下,里面有一堆以版本命名的文件.如:0.1.2.3.4......,那个就是了 比 ...

  6. EasyUI Combobox 默认设置

    /** *绑定运营商,默认设置, 演出CMCC, 传统的价值观念1 */ $('#operatingId').combobox({ url:'data_url', valueField:'id', t ...

  7. 赵雅智_Android编码规范

    凝视 导入mycodetemplates.xml统一凝视样式 须要加凝视的地方 类凝视(必加) 方法凝视(必加) 块凝视主要是数据结构和算法的描写叙述(必加) 类成员变量和常量凝视(选择性加入) 单行 ...

  8. 换行符以及for循环的优化

    string str = ""; for (int i = 0; i < _errlistCusEmailInfo.Count; i++)                   ...

  9. Web API 2:Action的返回类型

    Web API 2:Action的返回类型 Web API控制器中的Action方法有如下几种返回类型: void HttpResponseMessage IHttpActionResult 其它类型 ...

  10. Delta3D 2.8版本号 预习

    http://blog.csdn.net/zhuyingqingfen/article/details/38581453 看到官网今天的更新.发现即将公布的delta3d 2.8 版本号 做了非常大的 ...