作为一个前端工程师,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. 1.cocos2dx存储卡的游戏代码、而游戏移植到“华为荣耀”电话、问题的总结移植

     1记忆卡片游戏代码 CardItem.h #pragmaonce #ifndef__CardItem_H__ #define__CardItem_H__ #include"cocos2 ...

  2. INF 右安装驱动程序和卸载

    INF 右键安装驱动以及卸载 之前写过一篇文章是关于INF文件具体解释的.大家能够參看INF文件具体解释,这次写的是关于INF右键安装,这样比較方便. 卸载的话也是一句话.能够大大降低安装时间: 先将 ...

  3. 学SpringMVC

    http://jinnianshilongnian.iteye.com/blog/1593441

  4. 【百度地图API】如何制作自定义样式的公交导航结果面板?

    原文:[百度地图API]如何制作自定义样式的公交导航结果面板? 摘要: 百度地图API有默认的公交导航结果面板,但样式比较单一:而百度地图上的结果面板就比较美观.如何利用百度地图API来制作一个比较美 ...

  5. cocos2d-x 3.0游戏实例学习笔记 《跑酷》第四步--地图循环&amp;主角加入动作

    说明:这里是借鉴:晓风残月前辈的博客,他是将泰然网的跑酷教程,用cocos2d-x 2.X 版本号重写的,眼下我正在学习cocos2d-X3.0 于是就用cocos2d-X 3.0重写,并做相关笔记 ...

  6. ajax——client访问webservice基本用法

    学前aps.net当我学会了使用服务器端的访问webservice方法,然后实现一个样本:web server模拟网上购物,今天学习asp.net ajax的时候学习到了client直接訪问webse ...

  7. 【百度地图API】——如何让标注自动呈现在最佳视野内

    原文:[百度地图API]--如何让标注自动呈现在最佳视野内 摘要: “我有一堆标注,不规则的散落在地图的各个地方,我想把它们展示在一个最佳视野中,怎么办呢?”一位API爱好者咨询道. -------- ...

  8. Android_开发人员经常使用的颜色

    Android开发中经常要用一些个性化的颜色,然而茫茫的RBG颜色对比表,往往给人眼花缭乱的感觉,更别说从中轻易选出一两种比較惬意的颜色,以下我就总结一下开发中经常使用到的比較绚丽的颜色. 以下是经常 ...

  9. NET中异常处理的最佳实践

    NET中异常处理的最佳实践 本文翻译自CodeProject上的一篇文章,原文地址. 目录 介绍 做最坏的打算 提前检查 不要信任外部数据 可信任的设备:摄像头.鼠标以及键盘 “写操作”同样可能失效 ...

  10. javascript日历插件

    原文:javascript日历插件 javascript日历插件 最近在尝试着写javascript日历插件,所以也到github上看国外人日历源码,或者国内人写的好点的,也在研究点,虽然看到网上有一 ...