本文实例讲述了简单实用的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相关推荐

  1. php注入类,简单实用的PHP防注入类实例

    这篇文章主要介绍了简单实用的PHP防注入类实例,以两个简单的防注入类为例介绍了PHP防注入的原理与技巧,对网站安全建设来说非常具有实用价值,需要的朋友可以参考下 本文实例讲述了简单实用的PHP防注入类 ...

  2. php简单实用的操作文件工具类(创建、移动、复制、删除)

    php简单实用好用的文件及文件夹复制函数和工具类(创建.移动.复制.删除) function recurse_copy($src,$dst) {  // 原目录,复制到的目录 $dir = opend ...

  3. mysql防注入 php_PHP使用PDO实现mysql防注入功能详解

    本文实例讲述了PHP使用PDO实现mysql防注入功能.分享给大家供大家参考,具体如下: 1.什么是注入攻击 例如下例: 前端有个提交表格: 姓名: 密码: 后台的处理如下: $username=$_ ...

  4. php 高效缓存类,简单高效的文件缓存php类

    简单高效的文件缓存php类 class FileCache { public $keyPrefix = ''; public $cachePath = ''; public $cacheFileSuf ...

  5. 若依框架(SpringBoot)增加SQL防注入处理,SpringBoot增加SQL防注入

    文章目录 若依框架增加SQL防注入处理,SpringBoot项目可用 增加Filter 若依框架增加SQL防注入处理,SpringBoot项目可用 思路:增加Filter对请求中的请求参数进行过滤进行 ...

  6. ThinkPHP 数据库表结构处理类(简单实用)

    <?php /* *mysql表结构处理类 *创建数据表,增加,编辑,删除表中字段 * */ classMysqlManage{ /* *创建数据库,并且主键是aid *table要查询的表名 ...

  7. thinkphp mysql desc table_数据库表结构_ThinkPHP 数据库表结构处理类(简单实用)-云栖社区-阿里云...

    /* *mysql表结构处理类 *创建数据表,增加,编辑,删除表中字段 * */ classMysqlManage{ /* *创建数据库,并且主键是aid *table要查询的表名 */ functi ...

  8. php 分页类使用,php 分页 分页类 简单实用

    //为了避免重复包含文件而造成错误,加了判断函数是否存在的条件:if(!function_exists(pageft)){//定义函数pageft(),三个参数的含义为://$totle:信息总数:/ ...

  9. cookie购物车php简单,php中利用cookie实现购物车实例_PHP教程

    – phpMyAdmin SQL Dump – version 2.11.9.2 – – 主机: 127.0.0.1:3306 – 生成日期: 2009 年 12 月 06 日 02:05 – 服务器 ...

最新文章

  1. 一起谈.NET技术,ASP.NET MVC Membership 权限 漫谈
  2. php源码编译常见错误解决方案大全
  3. 放置奇兵 算法 月度活动 破碎时空记录 第六关 尸妖+鹿男(奥博隆)
  4. tar:文件打包归档
  5. 本期最新 9 篇论文,每一篇都想推荐给你 | PaperDaily #14
  6. P6122-[NEERC2016]Mole Tunnels【模拟费用流】
  7. .NET深入学习笔记(4):深拷贝与浅拷贝(Deep Copy and Shallow Copy)
  8. linux无缝升级的版本,最近一周发布新版本的Linux发行版 - 2020-01-03
  9. Linux主机如何连接刀片机,刀片服务器RAID配置及Linux操作系统的安装.doc
  10. 长文详解Attention、Seq2Seq与交互式匹配
  11. 数据库 SQL语法二
  12. 各种模拟器端口号及模拟器连接方式
  13. 学校计算机ip设置路由器,路由器怎么设置ip 如何设置路由器ip地址【详细步骤】...
  14. 计算机桌面文件为何不能剪贴,复制粘贴,详细教您电脑复制粘贴不能用了怎么解决...
  15. 玩转oled屏(基于SPI协议)
  16. SQL零基础入门学习(十)
  17. Java 设置Word页边距、页面大小、页面方向、页面边框
  18. IPsec VPN 实验
  19. Git push错误,Unauthorized fatal: Could not read from remote repository.未验证不能提交
  20. 【物联网】老程序教你一招,10行代码让超声波模块秒变声控开关

热门文章

  1. 怎样用springboot开发cs_SpringBoot如何进行学习!
  2. 设计海报|字符海报怎么玩?
  3. UI设计师收好!哪些会说故事的插画素材!
  4. 剪板机自动上下料_全自动上下料机械手系统的优势
  5. Linux hypervisor VMM介绍
  6. 计算机网络:VLAN和VXLAN
  7. Libco是一个C/C++协程库,在微信服务中广泛使用
  8. 一个Linux USB驱动:USB Skeleton driver - 2.0
  9. Django:保持会话状态cookies和session(1)
  10. python pyqt5 线程 暂停 重启_如何在PyQT5中暂停/播放线程?