前端过滤XSS攻击
日常开发过程中,对于存在用户交互的一些门户网站等,过滤xss攻击是必不可少的。
此处主要记录下我在工作过程中的简单处理方法。
前端过滤XSS攻击, 我这里用的是开源工程 js-xss,官网地址:http://jsxss.com/zh/index.html
查看官网可发现,与其他的js库一样,使用js-xss,只需(下载)引入xss.js文件到页面即可。
注意 : xss.js中主要使用到的方法为 filterXSS()
由于我在开发过程中,提交数据多是以表单序列化直接提交的,所以我重写了一下表单序列化的函数,如下所示:
//序列化表单数据,返回k=v&k=v格式的字符串,查看jquery.js源文件,可发现此处主要是改写了一下$(form).serialize()方法
function serializeForm(id) {
var form;
if(typeof id == 'string') {
form = $("#" + id);
} else if(typeof id == 'object') {
form = id;
}
var array = form.serializeArray();
for(var i = 0; i < array.length; i++) {
array[i].value = filterXSS(array[i].value,{
stripIgnoreTagBody :['script','iframe'],
stripIgnoreTag :true
});;
}
return $.param(array);
}
或者如下方法,返回json对象
//序列化表单数据,返回json对象
function getFormData(id) {
var form;
if(typeof id == 'string') {
form = $("#" + id);
} else if(typeof id == 'object') {
form = id;
}
var array = form.serializeArray();
var json = {};
for(var i = 0; i < array.length; i++) {
json[array[i].name] = filterXSS(array[i].value,{
stripIgnoreTagBody :['script','iframe'],
stripIgnoreTag :true
});
}
return json;
}
在进行ajax请求时,在提交表单数据时直接调用上面的其中之一即可(不需再调用$(form).serialize())
到此,前端过滤xss就完成了。
前端过滤XSS攻击的更多相关文章
- 前端安全 -- XSS攻击
XSS漏洞是最广泛.作用最关键的web安全漏洞之一.在绝大多数网络攻击中都是把XSS作为漏洞链中的第一环,通过XSS,黑客可以得到的最直接利益就是拿到用户浏览器的cookie,从而变相盗取用户的账号密 ...
- 过滤xss攻击脚本
<?php /** * @blog http://www.phpddt.com * @param $string * @param $low 安全别级低 */ function clean_xs ...
- 过滤xss攻击和sql注入函数
/**+----------------------------------------------------------* The goal of this function is to be a ...
- SpringBoot过滤XSS脚本攻击
XSS攻击是什么 XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安 ...
- 前端安全之 XSS攻击
参看: XSS的原理分析与解剖 前端安全 -- XSS攻击 web大前端开发中一些常见的安全性问题 1.前言 XSS 是面试时,hr提出来给我的,然后大体的浏览一遍,今天才查阅资料大体了解了它. XS ...
- 关于前端XSS攻击、短信轰炸等问题
关于前端的XSS攻击: 这里有一篇Ryf老师的写的关于使用 Content Security Policy (简称 CSP 防御)来防御xss攻击,简单来说就是设置白名单,告诉浏览器哪些链接.内容是 ...
- Django XSS攻击
Django XSS攻击 XSS(cross-site scripting跨域脚本攻击)攻击是最常见的web攻击,其特点是“跨域”和“客户端执行”,XSS攻击分为三种: Reflected XSS(基 ...
- .net解决Xss攻击
首先要明白什么是Xss攻击 XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中.比如这些代码包括HTML代码和客户端脚本.攻击者利用XSS漏 ...
- 这一次,彻底理解XSS攻击
希望读完本文大家彻底理解XSS攻击,如果读完本文还不清楚,我请你吃饭慢慢告诉你~ 话不多说,我们进入正题. 一.简述 跨站脚本(Cross-site scripting,简称为:CSS, 但这会与层叠 ...
随机推荐
- nodejs注册为windows服务
http://blog.csdn.net/puncha/article/details/9047311 http://www.oschina.net/question/12_18694 http:// ...
- Sed&awk笔记之sed篇
http://blog.csdn.net/a81895898/article/details/8482387 Sed是什么 <sed and awk>一书中(1.2 A Stream Ed ...
- 【POJ2417】baby step giant step
最近在学习数论,然而发现之前学的baby step giant step又忘了,于是去翻了翻以前的代码,又复习了一下. 觉得总是忘记是因为没有彻底理解啊. 注意baby step giant step ...
- 用SharedPreferences保存List(Map(String, String))数据
原因: SharedPreferences没有保存数组的方法,但是有时候为了保存一个数组而进行序列化,或者动用sqlite都是有点杀猪焉用牛刀的感觉,所以就自己动手改进一下吧. 解决方案: 采用的方式 ...
- mac 目录详解
打开Macintosh HD你会发现内中有四个文件夹 分别有——应用程序(Applications).系统(System).用户(User).资料库(Library).四个文件夹中又分别各有若干数量的 ...
- bzoj2007
首先不难发现海拔高度只能为0或1 因为决策是单调的 不难发现最优决策一定是划分为海拔为0和1两块,不会出现01相间的情况 所以这很明显是一个最小割 由于n*n很大,我们必须要用平面图最小割转化为最短路 ...
- bzoj1816
这道题不是很难,二分答案+判定即可 注意在一套牌中Joker只能用一次 ..] of longint; mid,l,r,n,m,i,ans:longint; function check(x: ...
- 最大流算法---Edmond-Karp
这个算法是基于FF方法,就是通过不断求残余网络的增广路来增广流量,直到找不到增广路为止.注意:每次找到增广路以后都要更新原网络.EK算法通过BFS寻找源S到汇T的一条最短路径,因此时间复杂度是O(VE ...
- implicitly_wait()隐式等待
# -*- coding:utf-8 -*- """ implicitly_wait():隐式等待 当使用了隐士等待执行测试的时候,如果 WebDriver没有在 DOM ...
- ssh互信自动化脚本(待更新)
1.建立一个ip,端口,用户,密码列表 [root@localhost shell-key]# cat arg_list.txt 172.16.56.215 172.16.56.215 172.16. ...