<?php
webscan_error();
//引用配置文件
require_once('webscan_cache.php');
//防护脚本版本号
define("WEBSCAN_VERSION", '0.1.3.2');
//防护脚本MD5值
define("WEBSCAN_MD5", md5(@file_get_contents(__FILE__)));
//get拦截规则
$getfilter = "\\<.+javascript:window\\[.{1}\\\\x|<.*=(&#\\d+?;?)+?>|<.*(data|src)=data:text\\/html.*>|\\b(alert\\(|confirm\\(|expression\\(|prompt\\(|benchmark\s*?\(.*\)|sleep\s*?\(.*\)|load_file\s*?\\()|<[a-z]+?\\b[^>]*?\\bon([a-z]{4,})\s*?=|^\\+\\/v(8|9)|\\b(and|or)\\b\\s*?([\\(\\)'\"\\d]+?=[\\(\\)'\"\\d]+?|[\\(\\)'\"a-zA-Z]+?=[\\(\\)'\"a-zA-Z]+?|>|<|\s+?[\\w]+?\\s+?\\bin\\b\\s*?\(|\\blike\\b\\s+?[\"'])|\\/\\*.*\\*\\/|<\\s*script\\b|\\bEXEC\\b|UNION.+?SELECT\s*(\(.+\)\s*|@{1,2}.+?\s*|\s+?.+?|(`|'|\").*?(`|'|\")\s*)|UPDATE\s*(\(.+\)\s*|@{1,2}.+?\s*|\s+?.+?|(`|'|\").*?(`|'|\")\s*)SET|INSERT\\s+INTO.+?VALUES|(SELECT|DELETE)@{0,2}(\\(.+\\)|\\s+?.+?\\s+?|(`|'|\").*?(`|'|\"))FROM(\\(.+\\)|\\s+?.+?|(`|'|\").*?(`|'|\"))|(CREATE|ALTER|DROP|TRUNCATE)\\s+(TABLE|DATABASE)";
//post拦截规则
$postfilter = "<.*=(&#\\d+?;?)+?>|<.*data=data:text\\/html.*>|\\b(alert\\(|confirm\\(|expression\\(|prompt\\(|benchmark\s*?\(.*\)|sleep\s*?\(.*\)|load_file\s*?\\()|<[^>]*?\\b(onerror|onmousemove|onload|onclick|onmouseover)\\b|\\b(and|or)\\b\\s*?([\\(\\)'\"\\d]+?=[\\(\\)'\"\\d]+?|[\\(\\)'\"a-zA-Z]+?=[\\(\\)'\"a-zA-Z]+?|>|<|\s+?[\\w]+?\\s+?\\bin\\b\\s*?\(|\\blike\\b\\s+?[\"'])|\\/\\*.*\\*\\/|<\\s*script\\b|\\bEXEC\\b|UNION.+?SELECT\s*(\(.+\)\s*|@{1,2}.+?\s*|\s+?.+?|(`|'|\").*?(`|'|\")\s*)|UPDATE\s*(\(.+\)\s*|@{1,2}.+?\s*|\s+?.+?|(`|'|\").*?(`|'|\")\s*)SET|INSERT\\s+INTO.+?VALUES|(SELECT|DELETE)(\\(.+\\)|\\s+?.+?\\s+?|(`|'|\").*?(`|'|\"))FROM(\\(.+\\)|\\s+?.+?|(`|'|\").*?(`|'|\"))|(CREATE|ALTER|DROP|TRUNCATE)\\s+(TABLE|DATABASE)";
//cookie拦截规则
$cookiefilter = "benchmark\s*?\(.*\)|sleep\s*?\(.*\)|load_file\s*?\\(|\\b(and|or)\\b\\s*?([\\(\\)'\"\\d]+?=[\\(\\)'\"\\d]+?|[\\(\\)'\"a-zA-Z]+?=[\\(\\)'\"a-zA-Z]+?|>|<|\s+?[\\w]+?\\s+?\\bin\\b\\s*?\(|\\blike\\b\\s+?[\"'])|\\/\\*.*\\*\\/|<\\s*script\\b|\\bEXEC\\b|UNION.+?SELECT\s*(\(.+\)\s*|@{1,2}.+?\s*|\s+?.+?|(`|'|\").*?(`|'|\")\s*)|UPDATE\s*(\(.+\)\s*|@{1,2}.+?\s*|\s+?.+?|(`|'|\").*?(`|'|\")\s*)SET|INSERT\\s+INTO.+?VALUES|(SELECT|DELETE)@{0,2}(\\(.+\\)|\\s+?.+?\\s+?|(`|'|\").*?(`|'|\"))FROM(\\(.+\\)|\\s+?.+?|(`|'|\").*?(`|'|\"))|(CREATE|ALTER|DROP|TRUNCATE)\\s+(TABLE|DATABASE)";
//获取指令
$webscan_action = isset($_POST['webscan_act'])&&webscan_cheack() ? trim($_POST['webscan_act']) : '';
//referer获取
$webscan_referer = empty($_SERVER['HTTP_REFERER']) ? array() : array('HTTP_REFERER'=>$_SERVER['HTTP_REFERER']);
class webscan_http {
var $method;
var $post;
var $header;
var $ContentType;
function __construct() {
$this->method = '';
$this->cookie = '';
$this->post = '';
$this->header = '';
$this->errno = 0;
$this->errstr = '';
}
function post($url, $data = array(), $referer = '', $limit = 0, $timeout = 30, $block = TRUE) {
$this->method = 'POST';
$this->ContentType = "Content-Type: application/x-www-form-urlencoded\r\n";
if($data) {
$post = '';
foreach($data as $k=>$v) {
$post .= $k.'='.rawurlencode($v).'&';
}
$this->post .= substr($post, 0, -1);
}
return $this->request($url, $referer, $limit, $timeout, $block);
}
function request($url, $referer = '', $limit = 0, $timeout = 30, $block = TRUE) {
$matches = parse_url($url);
$host = $matches['host'];
$path = $matches['path'] ? $matches['path'].($matches['query'] ? '?'.$matches['query'] : '') : '/';
$port = $matches['port'] ? $matches['port'] : 80;
if($referer == '') $referer = URL;
$out = "$this->method $path HTTP/1.1\r\n";
$out .= "Accept: */*\r\n";
$out .= "Referer: $referer\r\n";
$out .= "Accept-Language: zh-cn\r\n";
$out .= "User-Agent: ".$_SERVER['HTTP_USER_AGENT']."\r\n";
$out .= "Host: $host\r\n";
if($this->method == 'POST') {
$out .= $this->ContentType;
$out .= "Content-Length: ".strlen($this->post)."\r\n";
$out .= "Cache-Control: no-cache\r\n";
$out .= "Connection: Close\r\n\r\n";
$out .= $this->post;
} else {
$out .= "Connection: Close\r\n\r\n";
}
if($timeout > ini_get('max_execution_time')) @set_time_limit($timeout);
$fp = @fsockopen($host, $port, $errno, $errstr, $timeout);
$this->post = '';
if(!$fp) {
return false;
} else {
stream_set_blocking($fp, $block);
stream_set_timeout($fp, $timeout);
fwrite($fp, $out);
$this->data = '';
$status = stream_get_meta_data($fp);
if(!$status['timed_out']) {
$maxsize = min($limit, 1024000);
if($maxsize == 0) $maxsize = 1024000;
$start = false;
while(!feof($fp)) {
if($start) {
$line = fread($fp, $maxsize);
if(strlen($this->data) > $maxsize) break;
$this->data .= $line;
} else {
$line = fgets($fp);
$this->header .= $line;
if($line == "\r\n" || $line == "\n") $start = true;
}
}
}
fclose($fp);
return "200";
}
}
}
/**
* 关闭用户错误提示
*/
function webscan_error() {
if (ini_get('display_errors')) {
ini_set('display_errors', '0');
}
}
/**
* 验证是否是官方发出的请求
*/
function webscan_cheack() {
if($_POST['webscan_rkey']==WEBSCAN_U_KEY){
return true;
}
return false;
}
/**
* 数据统计回传
*/
function webscan_slog($logs) {
if(! function_exists('curl_init')) {
$http=new webscan_http();
$http->post(WEBSCAN_API_LOG,$logs);
}
else{
webscan_curl(WEBSCAN_API_LOG,$logs);
}
}
/**
* 参数拆分
*/
function webscan_arr_foreach($arr) {
static $str;
static $keystr;
if (!is_array($arr)) {
return $arr;
}
foreach ($arr as $key => $val ) {
$keystr=$keystr.$key;
if (is_array($val)) {
webscan_arr_foreach($val);
} else {
$str[] = $val.$keystr;
}
}
return implode($str);
}
/**
* 新版文件md5值效验
*/
function webscan_updateck($ve) {
if($ve!=WEBSCAN_MD5)
{
return true;
}
return false;
}
/**
* 防护提示页
*/
function webscan_pape(){
$pape=<<<HTML
<html>
<body style="margin:0; padding:0">
<center><iframe width="100%" align="center" height="870" frameborder="0" scrolling="no" src="http://safe.webscan.360.cn/stopattack.html"></iframe></center>
</body>
</html>
HTML;
echo $pape;
}
/**
* 攻击检查拦截
*/
function webscan_StopAttack($StrFiltKey,$StrFiltValue,$ArrFiltReq,$method) {
$StrFiltValue=webscan_arr_foreach($StrFiltValue);
if (preg_match("/".$ArrFiltReq."/is",$StrFiltValue)==1){
webscan_slog(array('ip' => $_SERVER["REMOTE_ADDR"],'time'=>strftime("%Y-%m-%d %H:%M:%S"),'page'=>$_SERVER["PHP_SELF"],'method'=>$method,'rkey'=>$StrFiltKey,'rdata'=>$StrFiltValue,'user_agent'=>$_SERVER['HTTP_USER_AGENT'],'request_url'=>$_SERVER["REQUEST_URI"]));
exit(webscan_pape());
}
if (preg_match("/".$ArrFiltReq."/is",$StrFiltKey)==1){
webscan_slog(array('ip' => $_SERVER["REMOTE_ADDR"],'time'=>strftime("%Y-%m-%d %H:%M:%S"),'page'=>$_SERVER["PHP_SELF"],'method'=>$method,'rkey'=>$StrFiltKey,'rdata'=>$StrFiltKey,'user_agent'=>$_SERVER['HTTP_USER_AGENT'],'request_url'=>$_SERVER["REQUEST_URI"]));
exit(webscan_pape());
}
}
/**
* 拦截目录白名单
*/
function webscan_white($webscan_white_name,$webscan_white_url=array()) {
$url_path=$_SERVER['SCRIPT_NAME'];
$url_var=$_SERVER['QUERY_STRING'];
if (preg_match("/".$webscan_white_name."/is",$url_path)==1&&!empty($webscan_white_name)) {
return false;
}
foreach ($webscan_white_url as $key => $value) {
if(!empty($url_var)&&!empty($value)){
if (stristr($url_path,$key)&&stristr($url_var,$value)) {
return false;
}
}
elseif (empty($url_var)&&empty($value)) {
if (stristr($url_path,$key)) {
return false;
}
}
}
return true;
}
/**
* curl方式提交
*/
function webscan_curl($url , $postdata = array()){
$ch = cu
360webscan解决xss漏洞


在IT安全领域,XSS(Cross Site Scripting)漏洞是一种常见的Web应用安全问题,它允许攻击者注入恶意脚本到网页上,进而对用户进行欺诈、窃取敏感信息等操作。360 webscan是一款由360公司提供的网站安全检测工具,它可以扫描并报告WordPress等网站平台的XSS漏洞。当360 webscan检测到WordPress存在XSS漏洞时,就需要采取措施来修复这个问题,以保护网站的安全和用户的数据。 我们需要理解XSS漏洞的基本原理。XSS漏洞主要源于Web应用程序未能正确地过滤或转义用户输入的数据,使得这些数据可以被浏览器当作可执行的JavaScript代码执行。攻击者可以通过在论坛、评论、表单等地方注入恶意脚本,一旦其他用户访问了包含恶意脚本的页面,就可能受到攻击。 针对360 webscan检测到的WordPress XSS漏洞,我们可以按照以下步骤进行修复: 1. **更新WordPress**:保持WordPress核心、主题和插件的最新状态是防范XSS漏洞的基本策略。开发者通常会在新版本中修复已知的安全问题,所以定期更新可以减少安全风险。 2. **筛选和审核用户输入**:对于任何用户提交的数据,如评论、表单等,都应进行严格的验证和过滤,避免包含恶意脚本的输入被执行。 3. **启用内容安全策略(Content Security Policy, CSP)**:CSP是一种防止XSS攻击的机制,它可以限制浏览器只加载指定来源的资源,从而降低恶意脚本执行的可能性。 4. **使用安全插件**:有些WordPress安全插件,如Wordfence、iThemes Security等,提供内置的XSS防护功能,可以帮助检测和阻止潜在的XSS攻击。 5. **修改模板文件**:如果检测到特定的模板文件存在漏洞,需要手动修改这些文件,确保所有用户输入都被正确转义或过滤。 6. **审查并修复第三方组件**:如果问题出在某个第三方主题或插件上,及时联系开发者或者寻找替代方案,确保其已修复相关漏洞。 7. **启用HTTP头部安全设置**:如X-XSS-Protection,该头部可以开启浏览器内置的XSS过滤功能。 8. **进行安全审计**:定期使用360 webscan或其他安全扫描工具进行检查,确保新出现的漏洞得到及时发现和处理。 在修复过程中,可能会涉及到修改PHP代码、配置文件或数据库,因此需要谨慎操作,确保备份好所有重要数据,以防意外情况发生。 文件"360safe"可能是360提供的安全报告或修复工具,使用它可以帮助我们更有效地识别和解决XSS漏洞。具体使用方法需要根据文件的实际情况来确定,通常这类工具会提供详细的指南和步骤。 解决360 webscan检测到的WordPress XSS漏洞需要结合系统更新、代码审查、安全设置优化和第三方组件管理等多个方面的工作,同时持续关注安全动态,保持警惕,才能确保网站的安全性。




- 1














- 粉丝: 316
- 资源: 13
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 一种鲁棒的开路故障诊断-A Robust Open-Circuit Fault Diagnosis-matlab
- 氢燃料电池中液态水仿真的解析与水蒸气冷凝现象的研究:探讨阴极结构内的水体积分数分布,解析液态水分布:氢燃料电池液态水仿真技术详解,水蒸气冷凝过程中的阴极结构液态水体积分数分析,氢燃料电池液态水仿真 液
- 机器人辅助假肢测试中的实时混合子结构仿真:机械臂选型与集成
- mmexport1741417035005.png
- 基于Matlab仿真的储能电池剩余寿命预测技术研究,基于Matlab仿真的储能电池剩余寿命预测技术研究,储能电池剩余寿命预测matlab仿真 ,核心关键词:储能电池;剩余寿命预测;Matlab仿真
- 长短期Transformer在线视频动作检测算法研究与应用
- 基于MOAHA算法的多目标无人机三维路径规划MATLAB代码实现与应用研究,基于MOAHA算法的多目标无人机三维路径规划MATLAB代码优化实现,多目标应用:多目标人工蜂鸟优化算法MOAHA求解无人机
- maven的配置文件settings.xml
- MATLAB 2022a配电网单相及多相接地故障仿真模型研究与应用,MATLAB 2022a配电网单相及多相接地故障仿真模型研究与应用,配电网单相接地故障模型,MATLAB2022a模型 可以进行单相
- 基于FDTD仿真技术的散射模型研究及TFSF光源设置方法与仿真结果展示,FDTD仿真散射模型+TFSF光源设置,fdtd仿真散射模型,TFSF光源设置,仿真结果如图所示 ,fdtd仿真; 散射模型;
- XAnyLabelimg-obb标注软件,可自动标注
- “fluent-edem流固三相耦合教学及代码二次开发-GPU加速仿真,真实模拟颗粒流体相互作用”,《fluent-edem流固耦合模拟:教学、代做与代码二次开发,多用途仿真软件及其高效计算》,fl
- USB运动控制开源系统揭秘:五轴雕刻机核心技术全开源,支持RTCP算法,PCB生产便捷,C++源码可复制,USB运动控制五轴雕刻机系统完全开源资料,含PCB生产支持及多版本C++源码,USB运动控制
- Comsol冻土THM三场耦合模型案例:瞬态求解器与稳态求解器在水分场、温度场及应力场的应用,Comsol冻土THM三场耦合模型案例:瞬态求解器与稳态求解器在水分场、温度场及应力场的应用,Comsol
- 大肠癌全球数据集与预测-结直肠癌-数据集
- 基于T型三电平的模型预测控制与零序电压注入的中点电位平衡算法研究与应用,基于T型三电平的模型预测并网控制:结合SPWM与零序电压注入的中点电位平衡算法支持simulink多版本,模型预测控制(T型三电



评论0