360 php SQL注入,从360提供的PHP防SQL注入代码改成的一个类
前些天做的一个网站在百度搜索时竟然提示“安全联盟提醒您:该网站存在安全风险,请谨慎访问!”,于是就开始拼命的找解决方案,最终从SQL注入和HTTP跨站两个方面解决了问题,在这里记录一下。
1.[代码][PHP]代码
class sqlsafe {
private $getfilter = "'|(and|or)\\b.+?(>|
private $postfilter = "\\b(and|or)\\b.{1,6}?(=|>|
private $cookiefilter = "\\b(and|or)\\b.{1,6}?(=|>|
/**
* 构造函数
*/
public function __construct() {
foreach($_GET as $key=>$value){$this->stopattack($key,$value,$this->getfilter);}
foreach($_POST as $key=>$value){$this->stopattack($key,$value,$this->postfilter);}
foreach($_COOKIE as $key=>$value){$this->stopattack($key,$value,$this->cookiefilter);}
}
/**
* 参数检查并写日志
*/
public function stopattack($StrFiltKey, $StrFiltValue, $ArrFiltReq){
if(is_array($StrFiltValue))$StrFiltValue = implode($StrFiltValue);
if (preg_match("/".$ArrFiltReq."/is",$StrFiltValue) == 1){
$this->writeslog($_SERVER["REMOTE_ADDR"]." ".strftime("%Y-%m-%d %H:%M:%S")." ".$_SERVER["PHP_SELF"]." ".$_SERVER["REQUEST_METHOD"]." ".$StrFiltKey." ".$StrFiltValue);
showmsg('您提交的参数非法,系统已记录您的本次操作!','',0,1);
}
}
/**
* SQL注入日志
*/
public function writeslog($log){
$log_path = CACHE_PATH.'logs'.DIRECTORY_SEPARATOR.'sql_log.txt';
$ts = fopen($log_path,"a+");
fputs($ts,$log."\r\n");
fclose($ts);
}
}
?>
360 php SQL注入,从360提供的PHP防SQL注入代码改成的一个类相关推荐
- oracle防止sql注入proc,解密:Oracle怎么防SQL注入
昨天我们说了怎么绕过waf进行sql注入,今天我们继续这个话题,说说Oracle数据库本身在防sql注入方面做了哪些工作. Oracle从8i开始PL/SQL中涌现出了大量SQL注入漏洞,直至11.2 ...
- 依赖注入及AOP简述(五)——依赖注入的方式 .
二.依赖注入的应用模式 前面我们了解了依赖注入的基本概念,也对一些依赖注入框架进行了简单的介绍,这一章我们主要来讨论作为开发者如何利用依赖注入框架来实现依赖注入的设计思想. 1. 依赖注入的方 ...
- 360 safe3.php源码,360提供的Php防注入代码
360提供的Php防注入代码 //Code By Safe3 function customError($errno, $errstr, $errfile, $errline) { echo &quo ...
- PHP之SQL防注入代码,PHP防XSS 防SQL注入的代码
360提示XSS漏洞?这个XSS漏洞很不好修复.....如果是PHP程序的话,可以用下面的代码来过滤... PHP防XSS 防SQL注入的代码 class protection{public stat ...
- .NET防SQL注入方法
SQL语句 利用SqlCommand传参数的方法: string strSQL="SELECT * FROM [user] WHERE user_id=@id"; SqlCom ...
- SQL 登录注入脚本_常见web安全问题,SQL注入、XSS、CSRF,基本原理以及如何防御...
1.SQL注入 原理: 1).SQL命令可查询.插入.更新.删除等,命令的串接.而以分号字元为不同命 令的区别.(原本的作用是用于SubQuery或作为查询.插入.更新.删除--等 的条件式) 2). ...
- sql参数化还是被注入了_面试官问你 SQL 注入攻击了吗?
目录 为什么要聊 SQL 注入攻击? 什么是 SQL 注入攻击? 如何进行 SQL 注入攻击? 如何防范? 常见面试题 瞎比比 为什么要聊 SQL 注入攻击? 我这人有个想法,就是不管自己跳不跳槽,每 ...
- sql注入查找注入点_基本的EJB参考,注入和查找
sql注入查找注入点 在本系列的第一部分中 ,我们介绍了Enterprise JavaBeans v.3.0规范提供的机制,用于定义EJB组件,声明对EJB的引用并通过依赖项注入或程序化JNDI查找将 ...
- android 360旋转动画,ANDROID——仿360手机卫士的旋转打分控件
简介 灵感源自360手机卫,主要功能就是实现显示评分或等级的效果.并稍微改良了一下,有更好的实用性和扩展性. 因为主要用途就是显示"分数","评价",所以暂且叫 ...
最新文章
- 项目跑到到了日志警告就卡住了_java中的日志框架梳理(以故事的形式呈现)...
- 面向对象--第三部分
- excel怎么添加diy工具箱_这些Excel插件让你的Excel更好用!
- java队列实现限流,java中应对高并发的两种策略
- 查询工资最低的3名员工的职工工号、姓名和收入_工资条6个常识必须掌握,事关你的权益!...
- oracle 不等函数,Oracle 不常用函数
- 数组的连续子数组最大和(首尾相连)
- 封装算法: 模板方法(Template Method)模式
- 农业灌溉泵行业调研报告 - 市场现状分析与发展前景预测
- 詹皇比肩乔丹!如何防住他?这是AI给出的回答
- python免费全套教程400集视频-阿里巴巴大佬打造400集Python视频教程视频拿去,学完万物皆可爬...
- buuctf-变异凯撒
- python解二阶微分方程组_python:利用多种方式解微分方程(以二阶微分系统零状态响应为例)...
- NIOS II 烧写epcs总结
- word使用技巧大全
- Oracle以甲乙丙丁来排列
- python二维数组第一列_Python遍历numpy数组的实例 python中如何提取一组数据中的第一列数据...
- 2019矿大软件工程考试记录
- MySQL 数据库的基本类型详解(04)
- DNS A记录 NS记录 CNAME记录 TXT记录 TTL值