这篇文章主要介绍了简单实用的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 "history.go(-1);";

}else{

echo "window.location='".$StrGoUrl."';";

}

exit;

}

}

/***************结束防止PHP注入*****************/

?>

希望本文所述对大家的PHP程序设计有所帮助。

php注入类,简单实用的PHP防注入类实例相关推荐

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

    本文实例讲述了简单实用的PHP防注入类.分享给大家供大家参考.具体如下: PHP防注入注意要过滤的信息基本是get,post,然后对于sql就是我们常用的查询,插入等等sql命令了,下面我给各位整理两 ...

  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. html美化select样式,select样式美化(简单实用)

    美化select,可以实用一个a标签将select嵌套进去,然后将相对定位,在将select绝对定位,美化即可 .sel_mask{ /*将相对定位*/ position:relative; widt ...

最新文章

  1. TestSuite测试报告生成
  2. 使用XML与远程服务器进行交互
  3. 许昌电气学校电话计算机,许昌电气职业学院
  4. Laravel event 事件的简单使用
  5. 完成AOP 顶层设计-AopProxy
  6. java爬虫技术的作用_Java网络爬虫怎么实现?
  7. PHP四种基本排序算法
  8. linux 组态软件,基于嵌入式Linux的组态软件实时数据库的设计
  9. linux dig命令
  10. 金融级IT架构-数字银行的云原生架构解析
  11. 将word文档锁定其他用户不可编辑
  12. 从一个字符串删除元音字母
  13. Gateway统一网关(2021-11-14)
  14. 将自家的位置标注到地图上(51ditu.com)
  15. Endurance International Group任命曼尼什达拉尔为亚太区董事总经理
  16. 如果要用运营的姿势,发支付宝红包
  17. unity读取Texture文件并转为Sprit
  18. 重装系统后win10激活
  19. STM32CubeMX环境搭建及使用
  20. labview中的移位寄存器、循环隧道,自动索引隧道的区别

热门文章

  1. java访问控制符_java中访问控制符的作用
  2. java游戏输赢统计_java利用多线程和Socket实现猜拳游戏
  3. android 除了webview 浏览器控件,AgentWeb是基于Android WebView一个功能完善小型浏览器库...
  4. 如何用Java做玫瑰花数_c语言如何输出玫瑰花数?(代码示例)
  5. 搭建流媒体服务器(1)
  6. python day-15 匿名函数 sorted ()函数 filter()函数 map()函数 递归 二分法...
  7. Zabbix JMX之tomcat监控
  8. spring boot / cloud (二) 规范响应格式以及统一异常处理
  9. ASP.Net请求小周期
  10. pku 3020 Antenna Placement