php注入类,简单实用的PHP防注入类实例_PHP
本文实例讲述了简单实用的PHP防注入类。分享给大家供大家参考。具体如下:
PHP防注入注意要过滤的信息基本是get,post,然后对于sql就是我们常用的查询,插入等等sql命令了,下面我给各位整理两个简单的例子,希望这些例子能给你网站带来安全.
PHP防注入类代码如下:
代码如下:
/**
* 参数处理类
* @author JasonWei
*/
class Params
{
public $get = array();
public $post = array();
function __construct()
{
if (!emptyempty($_GET)) {
foreach ($_GET as $key => $val) {
if (is_numeric($val)) {
$this->get[$key] = $this->getInt($val);
} else {
$this->get[$key] = $this->getStr($val);
}
}
}
if (!emptyempty($_POST)) {
foreach ($_POST as $key => $val) {
if (is_numeric($val)) {
$this->post[$key] = $this->getInt($val);
} else {
$this->post[$key] = $this->getStr($val);
}
}
}
}
public function getInt($number)
{
return intval($number);
}
public function getStr($string)
{
if (!get_magic_quotes_gpc()) {
$string = addslashes($string);
}
return $string;
}
public function checkInject($string)
{
return eregi('select|insert|update|delete|/*|*|../|./|union|into|load_file|outfile', $string);
}
public function verifyId($id = null)
{
if (!$id || $this->checkInject($id) || !is_numeric($id)) {
$id = false;
} else {
$id = intval($id);
}
return $id;
}
}
?>
例子二,代码如下:
代码如下:
/*************************
说明:
判断传递的变量中是否含有非法字符
如$_POST、$_GET
功能:
防注入
*************************/
//要过滤的非法字符
$ArrFiltrate=array("'","or","and","union","where");
//出错后要跳转的url,不填则默认前一页
$StrGoUrl="";
//是否存在数组中的值
function FunStringExist($StrFiltrate,$ArrFiltrate){
foreach ($ArrFiltrate as $key=>$value){
if (eregi($value,$StrFiltrate)){
return true;
}
}
return false;
}
//合并$_POST 和 $_GET
if(function_exists(array_merge)){
$ArrPostAndGet=array_merge($HTTP_POST_VARS,$HTTP_GET_VARS);
}else{
foreach($HTTP_POST_VARS as $key=>$value){
$ArrPostAndGet[]=$value;
}
foreach($HTTP_GET_VARS as $key=>$value){
$ArrPostAndGet[]=$value;
}
}
//验证开始
foreach($ArrPostAndGet as $key=>$value){
if (FunStringExist($value,$ArrFiltrate)){
echo "";
if (emptyempty($StrGoUrl)){
echo "";
}else{
echo "";
}
exit;
}
}
/***************结束防止PHP注入*****************/
?>
希望本文所述对大家的PHP程序设计有所帮助。
本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉
本文系统来源:php中文网
php注入类,简单实用的PHP防注入类实例_PHP相关推荐
- php注入类,简单实用的PHP防注入类实例
这篇文章主要介绍了简单实用的PHP防注入类实例,以两个简单的防注入类为例介绍了PHP防注入的原理与技巧,对网站安全建设来说非常具有实用价值,需要的朋友可以参考下 本文实例讲述了简单实用的PHP防注入类 ...
- php简单实用的操作文件工具类(创建、移动、复制、删除)
php简单实用好用的文件及文件夹复制函数和工具类(创建.移动.复制.删除) function recurse_copy($src,$dst) { // 原目录,复制到的目录 $dir = opend ...
- mysql防注入 php_PHP使用PDO实现mysql防注入功能详解
本文实例讲述了PHP使用PDO实现mysql防注入功能.分享给大家供大家参考,具体如下: 1.什么是注入攻击 例如下例: 前端有个提交表格: 姓名: 密码: 后台的处理如下: $username=$_ ...
- php 高效缓存类,简单高效的文件缓存php类
简单高效的文件缓存php类 class FileCache { public $keyPrefix = ''; public $cachePath = ''; public $cacheFileSuf ...
- 若依框架(SpringBoot)增加SQL防注入处理,SpringBoot增加SQL防注入
文章目录 若依框架增加SQL防注入处理,SpringBoot项目可用 增加Filter 若依框架增加SQL防注入处理,SpringBoot项目可用 思路:增加Filter对请求中的请求参数进行过滤进行 ...
- ThinkPHP 数据库表结构处理类(简单实用)
<?php /* *mysql表结构处理类 *创建数据表,增加,编辑,删除表中字段 * */ classMysqlManage{ /* *创建数据库,并且主键是aid *table要查询的表名 ...
- thinkphp mysql desc table_数据库表结构_ThinkPHP 数据库表结构处理类(简单实用)-云栖社区-阿里云...
/* *mysql表结构处理类 *创建数据表,增加,编辑,删除表中字段 * */ classMysqlManage{ /* *创建数据库,并且主键是aid *table要查询的表名 */ functi ...
- php 分页类使用,php 分页 分页类 简单实用
//为了避免重复包含文件而造成错误,加了判断函数是否存在的条件:if(!function_exists(pageft)){//定义函数pageft(),三个参数的含义为://$totle:信息总数:/ ...
- cookie购物车php简单,php中利用cookie实现购物车实例_PHP教程
– phpMyAdmin SQL Dump – version 2.11.9.2 – – 主机: 127.0.0.1:3306 – 生成日期: 2009 年 12 月 06 日 02:05 – 服务器 ...
最新文章
- 一起谈.NET技术,ASP.NET MVC Membership 权限 漫谈
- php源码编译常见错误解决方案大全
- 放置奇兵 算法 月度活动 破碎时空记录 第六关 尸妖+鹿男(奥博隆)
- tar:文件打包归档
- 本期最新 9 篇论文,每一篇都想推荐给你 | PaperDaily #14
- P6122-[NEERC2016]Mole Tunnels【模拟费用流】
- .NET深入学习笔记(4):深拷贝与浅拷贝(Deep Copy and Shallow Copy)
- linux无缝升级的版本,最近一周发布新版本的Linux发行版 - 2020-01-03
- Linux主机如何连接刀片机,刀片服务器RAID配置及Linux操作系统的安装.doc
- 长文详解Attention、Seq2Seq与交互式匹配
- 数据库 SQL语法二
- 各种模拟器端口号及模拟器连接方式
- 学校计算机ip设置路由器,路由器怎么设置ip 如何设置路由器ip地址【详细步骤】...
- 计算机桌面文件为何不能剪贴,复制粘贴,详细教您电脑复制粘贴不能用了怎么解决...
- 玩转oled屏(基于SPI协议)
- SQL零基础入门学习(十)
- Java 设置Word页边距、页面大小、页面方向、页面边框
- IPsec VPN 实验
- Git push错误,Unauthorized fatal: Could not read from remote repository.未验证不能提交
- 【物联网】老程序教你一招,10行代码让超声波模块秒变声控开关
热门文章
- 怎样用springboot开发cs_SpringBoot如何进行学习!
- 设计海报|字符海报怎么玩?
- UI设计师收好!哪些会说故事的插画素材!
- 剪板机自动上下料_全自动上下料机械手系统的优势
- Linux hypervisor VMM介绍
- 计算机网络:VLAN和VXLAN
- Libco是一个C/C++协程库,在微信服务中广泛使用
- 一个Linux USB驱动:USB Skeleton driver - 2.0
- Django:保持会话状态cookies和session(1)
- python pyqt5 线程 暂停 重启_如何在PyQT5中暂停/播放线程?