1.5 xss漏洞修复
1.XSS漏洞修复
html实体
|
显示结果
|
描述
|
实体名称
|
|
|
空格
|
|
|
<
|
小于号
|
<
|
|
>
|
大于号
|
>
|
|
&
|
和号
|
&
|
|
"
|
引号
|
"
|
|
'
|
撇号
|
' (IE不支持)
|
HTML Encode
修复漏洞方针
PHP中的相应函数
|
strip_tags($str, [允许标签])
|
从字符串中去除 HTML 和 PHP 标记
|
|
htmlentities($str)
|
转义html实体
|
|
html_entity_decode($str)
|
反转义html实体
|
|
addcslashes($str, ‘字符’)
|
给某些字符加上反斜杠
|
|
stripcslashes($str)
|
去掉反斜杠
|
|
addslashes ($str )
|
单引号、双引号、反斜线与 NULL加反斜杠
|
|
stripslashes($str)
|
去掉反斜杠
|
|
htmlspecialchars()
|
特殊字符转换为HTML实体
|
|
htmlspecialchars_decode()
|
将特殊的 HTML 实体转换回普通字符
|
数据过滤类
<?php
class XSS
{
/**
* @desc 过滤数据
*
* @param $data string|array 输入数据
* @param $low bool 是否采用更为严格的过滤
*
* @return 返回过滤的数据
*/
public function clean_xss($data, $low = False)
{
#字符串过滤
if (! is_array ( $data ))
{
$data = trim ( $data ); #字符两边的处理
$data = strip_tags ( $data ); #从字符串中去除 HTML 和 PHP 标记
$data = htmlspecialchars ( $data ); #特殊字符转换为HTML实体
if ($low)
{
return $data;
}
#匹配换空格
$data = str_replace ( array ('"', "\\", "'", "/", "..", "../", "./", "//" ), '', $data );
$no = '/%0[0-8bcef]/';
$data = preg_replace ( $no, '', $data );
$no = '/%1[0-9a-f]/';
$data = preg_replace ( $no, '', $data );
$no = '/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]+/S';
$data = preg_replace ( $no, '', $data );
return $data;
}
#数组过滤
$arr=array();
foreach ($data as $k => $v)
{
$temp=$this->clean_xss($v);
$arr[$k]=$temp;
}
return $arr;
} }
#测试测试
session_start();
$_SESSION['xss']='xssss';
$xss=new XSS();
#测试字符串
$str = "<script>alert(document.cookie)</script>";
echo $str;
$str2=$xss->clean_xss($str);
echo $str2;
echo "<hr/>";
#测试数组
$arr=array("<script>alert(document.cookie)</script>","<script>alert(document.cookie)</script>","<script>alert(document.cookie)</script>");
echo "<pre>";
print_r($arr);
echo "</pre>";
$arr2=$xss->clean_xss($arr);
echo "<pre>";
print_r($arr2);
echo "</pre>";die;
?>
1.5 xss漏洞修复的更多相关文章
- php xss漏洞修复用手段和用到的一些函数
php xss漏洞修复用到的一些函数 $text = '<p>"Test paragraph".</p><!-- Comment --> < ...
- Struts网站基于Filter的XSS漏洞修复
下面的代码只支持struts2框架中的xss漏洞 第一步,创建过滤器XssFilter : package com.ulic.ulcif.filter; import java.io.IOExcept ...
- xss漏洞修复,待完善
1.防止sql注入 /// <summary> /// 分析用户请求是否正常 /// </summary> /// <param name="Str" ...
- dedecms5.7最新漏洞修复
最近发现织梦cms被挂马现象频繁,解决好好几个网站的问题,但是过不了多久,就又被攻击了,即使更改系统及ftp密码,也没有起到防御的作用,最后怀疑cms本身漏洞,于是采用工具扫描了一下,才发现问题的严重 ...
- 利用窗口引用漏洞和XSS漏洞实现浏览器劫持
==Ph4nt0m Security Team== Issue 0x03, Phile #0x05 of 0x07 |=----------------- ...
- (汉化改进作品)BruteXSS:Xss漏洞扫描脚本
今天给大家进行汉化改进的事一款脚本工具:BruteXSS,这款脚本能自动进行插入XSS,而且可以自定义攻击载荷. 该脚本也同时提供包含了一些绕过各种WAF(Web应用防护系统)的语句. 0×01简 ...
- Web常见漏洞修复建议
一.SQL注入修复建议 1.过滤危险字符,例如:采用正则表达式匹配union.sleep.and.select.load_file等关键字,如果匹配到则终止运行. 2.使用预编译语句,使用PDO需要注 ...
- 教你玩转XSS漏洞
什么是存储性XSS那? 通俗理解就是”xss“语句存在服务器上,可以一直被客户端浏览使用,所有登陆某一个存在”存储性xss“的页面的人,都会中招,可以是管理员,可以是普通的用户,所以他的危害是持续性的 ...
- wordpress网站程序漏洞修复办法
近日wordpress被爆出高危的网站漏洞,该漏洞可以伪造代码进行远程代码执行,获取管理员的session以及获取cookies值,漏洞的产生是在于wordpress默认开启的文章评论功能,该功能在对 ...
随机推荐
- 剑指offer——和为s的两个数字VS和为s的连续正数序列
两种方法都类似于快排的变形. #include <iostream> #include <string> using namespace std; bool FindNumbe ...
- Docker 数据管理-Volumes
Volumes是Docker最为推荐的数据持久化方法. Volumes have several advantages over bind mounts: Volumes are easier to ...
- STL 之 map的用法
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候 ...
- Fireworks(whole page)
<!DOCTYPE HTML> <html> <head> <title>Canvas 实现放烟花特效</title> <meta c ...
- 关于数组的初始化memset函数
关于数组的初始化memset函数 其实memset复制时按bit8个8个的赋值,有兴趣的可以自己百度.
- Queue 输出数据
坑人的引用类型....输出看看结果是什么 Queue<ParaInfo> strStranList = new Queue<ParaInfo>(); StringBuilder ...
- wiredtiger存储引擎介绍——本质就是LSM,当然里面也可以包含btree和列存储
见:http://www.slideshare.net/profyclub_ru/4-understanding-and-tuning-wired-tiger-the-new-high-perform ...
- 【Educational Codeforces Round 37】F. SUM and REPLACE 线段树+线性筛
题意 给定序列$a_n$,每次将$[L,R]$区间内的数$a_i$替换为$d(a_i)$,或者询问区间和 这题和区间开方有相同的操作 对于$a_i \in (1,10^6)$,$10$次$d(a_i) ...
- JavaWEB - JSP及隐含对象
---------------------------------------------------------------------------------------------------- ...
- jquery中ON方法的使用
以前在jquery中绑定动态元素一直使用live,现在才发现live已经被抛弃了,现在如果想实现live方法,可以使用最新的ON方法,具体使用如下: 替换live() live()写法 $('#l ...