变量安全过滤,防止xss攻击
下面这个方法不管是字符串还是数组,都可以进行过滤
/**
* @purpose : 对变量进行安全过滤,使 $_GET、$_POST、$q->record 等变量更安全
* @author : daicr
* @time : 2018-03-15
* @param : array $fArray 需要转换的数组
* @return :array $fArray 转换完成的数组
*/
function varFilter ($fArray) {
if (is_array($fArray)) {
foreach ( $fArray AS $_arrykey => $_arryval ) {
if ( is_string($_arryval) ) {
$fArray[$_arrykey] = trim($fArray[$_arrykey]); // 去除左右两端空格
$fArray[$_arrykey] = htmlspecialchars($fArray[$_arrykey]); // 将特殊字元转成 HTML 格式
$fArray[$_arrykey] = strip_tags($fArray[$_arrykey]); // 从字符串中去除 HTML 和 PHP 标记
$fArray[$_arrykey] = str_replace('javascript', 'javascript ', $fArray[$_arrykey]); // 禁止 javascript
if (!get_magic_quotes_gpc()) { // 当 magic_quotes_gpc 设置为 OFF 时,特殊字符加转移符 \
$fArray[$_arrykey] = addslashes($fArray[$_arrykey]);
}
}else if (is_array($_arryval)){ // 如果是数组,递归调用
$fArray[$_arrykey] = varFilter($_arryval);
}
}
} else {
$fArray = trim($fArray); // 去除左右两端空格
$fArray = htmlspecialchars($fArray); // 将特殊字元转成 HTML 格式
$fArray = strip_tags($fArray); // 从字符串中去除 HTML 和 PHP 标记
$fArray = str_replace("javascript", "javascript ", $fArray);// 禁止 javascript
if (!get_magic_quotes_gpc()) { // 当 magic_quotes_gpc 设置为 OFF 时,特殊字符加转义符 \
$fArray = addslashes($fArray);
}
}
Return $fArray;
}
下面这个方法只用于过滤字符串中的一些特殊字符
/**
* @purpose : 字符串安全过滤函数,可过滤掉空格,*,",',;,<,>,{,},\,../,..,./,UNION等
* @author : daicr
* @time : 2018-03-15
* @param : string $string 需要进行过滤的字符串
* @return : string $string 过滤完毕的字符串
*/
function strFilter($string) {
$string = str_replace('%20','',$string); // 过滤 空格
$string = str_replace('%27','',$string); // 过滤 '
$string = str_replace('%2527','',$string); // 过滤 '
$string = str_replace('*','',$string); // 过滤 *
$string = str_replace('"','"',$string); // 将 " 转义为html实体
$string = str_replace("'",'',$string); // 过滤 '
$string = str_replace('"','',$string); // 过滤 "
$string = str_replace(';','',$string); // 过滤 ;
$string = str_replace('<','<',$string); // 将 < 转义为html实体
$string = str_replace('>','>',$string); // 将 > 转义为html实体
$string = str_replace("{",'',$string); // 过滤 {
$string = str_replace('}','',$string); // 过滤 }
$string = str_replace('\\','',$string); // 过滤
$string = str_replace("../","",$str); // 过滤 ../
$string = str_replace("..","",$str); // 过滤 ..
$string = str_replace("./","",$str); // 过滤 ./
$string = str_ireplace("UNION","",$str); // 忽略大小写过滤 UNION
return $string;
}
对用户输入的字符串进行过滤,以防止 xss 攻击
变量安全过滤,防止xss攻击的更多相关文章
- PHP不过过滤防止xss攻击的方法
PHP不过过滤防止xss攻击的方法<pre> $content=htmlspecialchars($content); $pos=strpos($content,"\u" ...
- 拦截过滤防御XSS攻击 -- Struts2.3 以及 2.5 的解决方式
使用Struts2框架开发的后台在防御XSS攻击的时候很多方式都不能用,因为Struts2对请求进行的二次封装有区别.以下针对Struts2的XSS攻击进行拦截过滤防御解决: Struts2.3 本方 ...
- 特殊字符的过滤,防止xss攻击
概念 XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安全漏洞,它允 ...
- 过滤xss攻击和sql注入函数
/**+----------------------------------------------------------* The goal of this function is to be a ...
- PHP通用的XSS攻击过滤函数,Discuz系统中 防止XSS漏洞攻击,过滤HTML危险标签属性的PHP函数
XSS攻击在最近很是流行,往往在某段代码里一不小心就会被人放上XSS攻击的代码,看到国外有人写上了函数,咱也偷偷懒,悄悄的贴上来... 原文如下: The goal of this function ...
- 文本XSS攻击过滤
在FCK或百度编辑器等常用富文本编辑器中,通常是会被XSS攻击 处理方法: 文本框模拟输入了以下文本 <span style="dispaly:none" onclick=& ...
- 前端过滤XSS攻击
日常开发过程中,对于存在用户交互的一些门户网站等,过滤xss攻击是必不可少的. 此处主要记录下我在工作过程中的简单处理方法. 前端过滤XSS攻击, 我这里用的是开源工程 js-xss,官网地址:htt ...
- XSS攻击过滤处理
关于XSS攻击 XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中. XSS漏洞的危害 网络钓鱼,包括盗取各类用户账号: 窃取用户cooki ...
- 根据白名单过滤 HTML(防止 XSS 攻击)
https://github.com/leizongmin/js-xss/blob/master/README.zh.md 根据白名单过滤 HTML(防止 XSS 攻击) xss是一个用于对用户输入的 ...
随机推荐
- IsNullOrEmpty和IsNullOrWhiteSpace的区别
IsNullOrEmpty // string /// <summary>Indicates whether the specified string is null or an < ...
- Codeforces 342D Xenia and Dominoes 状压dp
码就完事了. #include<bits/stdc++.h> #define LL long long #define fi first #define se second #define ...
- Docker docker-compose安装
一.在服务器上敲下面命令即可,将需要的版本号修改一下即可 sudo curl -L "https://github.com/docker/compose/releases/download/ ...
- Codeforces 873F Forbidden Indices 字符串 SAM/(SA+单调栈)
原文链接https://www.cnblogs.com/zhouzhendong/p/9256033.html 题目传送门 - CF873F 题意 给定长度为 $n$ 的字符串 $s$,以及给定这个字 ...
- P1080 国王游戏 贪心 高精度
题目描述 恰逢 HH国国庆,国王邀请nn 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 nn 位大臣排成一排,国王站在队伍的 ...
- vue文字跑马灯效果
https://cdn.bootcss.com/jQuery.Marquee/1.5.0/jquery.marquee.js 兼容vue $("#demo4").marquee({ ...
- Constructing Roads-最小生成树(kruskal)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1102 题目描述: #include<cstdio> #include<cstring ...
- selenium设置chrome和phantomjs的请求头信息
selenium设置chrome和phantomjs的请求头信息 出于反爬虫也好-跳转到手机端页面也好都需要设置请求头,那么如何进行呢? 目录 一:selenium设置phantomjs请求头: ...
- CodeForces 433C Ryouko's Memory Note (中位数定理)
<题目链接> 题目大意:给你一堆数字,允许你修改所有相同的数字成为别的数字,不过只能修改一次,问你修改后序列相邻数字的距离和最小是多少. 解题分析: 首先,修改不是任意的,否则那样情况太多 ...
- python系统性能模块笔记
内存信息psutil.cpu_times() 使用cpu_times方法获取cpu完整信息,需要显示所有逻辑cpu信息(指定变量percpu=True)psutil.cpu_ti ...