<?php
/*判断传递的变量是否含有非法字符
如:$_POST/$_GET
功能:SQL防注入系统
*/

//屏蔽错误提示
error_reporting(7);

//需要过滤的字符

$ArrFiltrate = array("'", "or", "and", "union", "where"); //1.如果规则不完全,也会引起安全问题

//出错跳转的URL
$StrGoUrl = ""; //2.如果此处不初始化,且register_globals = On,就会产生变量覆盖漏洞(php4.2.0之前默认register_globals = On)

//防注入函数
function FunStringExist($StrFiltrate, $ArrFiltrate)
{
foreach ($ArrFiltrate as $key => $value)
{
if (stristr($value, $StrFiltrate)) //3.保证or/Or/oR/OR之类的提交不会成功(这是个比较安全的防止SQL注入的函数,现对于strstr()函数而言)
{
return true;
}
}

return false;
}

//合并$_POST && $_GET
if (function_exists(array_merge))
{
$ArrPostAndGet = array_merge ($_POST, $_GET);
}
else
{
//手动合并$_POST
foreach ($_POST as $key => $value)
{
$ArrPostAndGet[] = $value;
}

//手动合并$_GET
foreach ($_GET as $key => $value)
{
$ArrPostAndGet[] = $value;
}
}

//调用防注入函数
foreach ($ArrPostAndGet as $key => $value)
{
if (FunStringExist ($value, $ArrFiltrate))
{
echo "<script>alert('非法字符');</script>";

if (empty($StrGoUrl))
{
echo "<script>history.go(-1);</script>";
}
else
{
echo "<script>window.location = '".$StrGoUrl."'</script>";
}

exit(0);
}
}
?>

php之防注入程序绕过浅谈的更多相关文章

  1. SQL防注入程序 v1.0

    /// ***************C#版SQL防注入程序 v1.0************ /// *使用方法: /// 一.整站防注入(推荐) /// 在Global.asax.cs中查找App ...

  2. SQL防注入程序

    1.在Global.asax.cs中写入: protected void Application_BeginRequest(Object sender,EventArgs e){      SqlIn ...

  3. [转]PDO防注入原理分析以及使用PDO的注意事项

    原文:http://zhangxugg-163-com.iteye.com/blog/1835721 好文章不得不转. 我们都知道,只要合理正确使用PDO,可以基本上防止SQL注入的产生,本文主要回答 ...

  4. PDO防注入原理分析以及使用PDO的注意事项

    我们都知道,只要合理正确使用PDO,可以基本上防止SQL注入的产生,本文主要回答以下两个问题: 为什么要使用PDO而不是mysql_connect? 为何PDO能防注入? 使用PDO防注入的时候应该特 ...

  5. PDO防注入原理分析以及使用PDO的注意事项 (转)

    我们都知道,只要合理正确使用PDO,可以基本上防止SQL注入的产生,本文主要回答以下两个问题: 为什么要使用PDO而不是mysql_connect? 为何PDO能防注入? 使用PDO防注入的时候应该特 ...

  6. MYSQLl防注入

    1.简单sql防注入 简述: 所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令. 在某些表单中,用户输入的内容直接用来构造(或 ...

  7. php过滤参数特殊字符防注入

    分享一例php实现过滤提交的参数数据以防止注入的代码,有需要的朋友参考下. 本节内容: php过滤特符字符,php防注入. in: 后端程序 例子: 代码示例: <?php /** * 安全防范 ...

  8. sql 防注入 维基百科

    http://zh.wikipedia.org/wiki/SQL%E8%B3%87%E6%96%99%E9%9A%B1%E7%A2%BC%E6%94%BB%E6%93%8A SQL攻击(SQL inj ...

  9. Go语言SQL注入和防注入

    Go语言SQL注入和防注入 一.SQL注入是什么 SQL注入是一种注入攻击手段,通过执行恶意SQL语句,进而将任意SQL代码插入数据库查询,从而使攻击者完全控制Web应用程序后台的数据库服务器.攻击者 ...

随机推荐

  1. php发送请求

    $opts = array( 'http'=>array( 'method'=>"GET", 'timeout'=>10, ));$context = strea ...

  2. CSS3颜色渐变模式总结

    1.线性渐变:linear-gradient 语法:= linear-gradient([ [ | to [, ]+) = [left | right] || [top | bottom] = [ | ...

  3. hdu 5188(带限制的01背包)

    zhx and contest Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)T ...

  4. BMP文件组成

    BMP文件组成 BMP文件由文件头.位图信息头.颜色信息和图形数据四部分组成. 如图: 位图文件头BITMAPFILEHEADER 位图信息头BITMAPINFOHEADER 调色板Palette 实 ...

  5. 在Debian 9上安装和配置Observium网络监控

    https://blog.csdn.net/csgd2000/article/details/80780697

  6. 好的web前端是如何拿到30万年薪的?

    2018年前端开发不再像过去几年里新技术框架层出不穷,而是各种组件,模块,很多东西都有痕迹可寻,技术都在原来的基础上有了革新和沉淀. 前端招聘方面也在紧跟技术发展,大量“滥竽充数”的速成开发者开始失去 ...

  7. android studio中timber的配置

    在你项目的module级别的build.gradle中加入 compile 'com.jakewharton.timber:timber:3.1.0' 然后Timber的依赖就添加进来了.

  8. CF 1003C Intense Heat【前缀和/精度/双层暴力枚举】

    The heat during the last few days has been really intense. Scientists from all over the Berland stud ...

  9. AMQ学习笔记 - 08. Spring-JmsTemplate之发送

    概述 JmsTemplate提供了3组*3,共计9个发送用的方法.   发送的方法有3组: 基本的发送 转换并发送 转换.后处理再发送 必需的资源 必需的资源有: javax.jms.Connecti ...

  10. 洛谷——P1495 曹冲养猪

    题目描述 自从曹冲搞定了大象以后,曹操就开始捉摸让儿子干些事业,于是派他到中原养猪场养猪,可是曹冲满不高兴,于是在工作中马马虎虎,有一次曹操想知道母猪的数量,于是曹冲想狠狠耍曹操一把.举个例子,假如有 ...