php之防注入程序绕过浅谈_weixin_30415801的博客-程序员秘密

技术标签: php  

<?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);
}
}
?>

转载于:https://www.cnblogs.com/milantgh/p/4088453.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30415801/article/details/98434420

智能推荐

redis(一)基本操作命令_redis 1524_zsf_lance的博客-程序员秘密

基础命令keys 命令 keys * 匹配所有键 keys ? 匹配单个字符 keys [a-z]指定单个字段范围 keys \x 转义字符,匹配字符x exists key 判断键值是否存在 type key 获取键值类型 expire key seconds 设置键的有效期,单位是秒 pexpire key 1000 设置键的有效期,单位是毫秒 persist...

python 练习9--分解质因数(我发现了输入输出新大陆????)_"n = int(input(\"input number:\")) print (\"n = %d_十指流玉的博客-程序员秘密

题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。(2)如果n&lt;&gt;k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n, 重复执行第一步。(3)如果n不能被k整除,则用...

3.Linux内存管理----进程中的内存消耗、泄露_紫夜墨青的博客-程序员秘密

文章目录一、VMA(virtual memory area)二、pagefault(缺页中断)三、用户空间的虚拟内存在实际物理内存的分布四、判断内存泄露一、VMA(virtual memory area)1.VMA(虚拟内存空间)概述    一个进程用结构体task_struct结构体描述。task_struct中包含内存结构体mm_struct ;mm_struct 包含虚拟内存结构体vm_area_struct。    vm_area_struct中,包含虚拟内存的用户空间的地址范围,以及该内存

密码技术的典型应用——时间戳服务_时间戳服务系统_weixin_45303938的博客-程序员秘密

我们在文件上签字盖章时,经常还需要签署上当前的日期时间。这是因为签署的时间是重要的签署特征,在法律上也有相应的作用和意义。与之相应的,进行数字签名时,签名发生的时间一样是重要要件,比如在电子医疗、电子病历应用中。那么数字签名的时间来自哪里呢?大部分开发工程师肯定会说取系统时间,这也是最简单快捷的方法。大部分情况下这样做没有问题,但在安全要求严格的场景下,系统时间是不牢靠的。主要有两个原因:一个是准确性,系统时间本身可能就有误差,时间数值在传递过程中也有可能被篡改;第二个是可信赖,签名时间既然如此重要,那签.

DeepSpeech2在windows下的部署与测试_MultAngle的博客-程序员秘密

1.部署环境win11+anaconda3+python3.7+cuda10.0+cudnn7.6.0+PaddlePaddle 2.1.22.源码下载下载链接:https://github.com/yeyupiaoling/PaddlePaddle-DeepSpeech3.搭建环境(1)安装PaddlePaddle-GPU版本conda activate xxx #为与其它环境相互干扰,创建的虚拟环境,进入虚拟环境下,进行以下操作conda install paddlepaddle-gpu

一些实用代码_火焰雪人的博客-程序员秘密

1、四舍五入函数://number为某实数,n为要保留的小数位数function myRound(number,n) {     number = Math.round(number*Math.pow(10,n))/Math.pow(10,n);   return  number;  }2、文本框中只能输入数字的函数://只能输入数字//用法 funct

随便推点

Emgu CV4图像处理之运动物体检测16(C#)_c#物体运动检测_zxy2847225301的博客-程序员秘密

4 添加项目引用Emgu.CV.dll、Emgu.CV.Platform.NetFramework.dll、System.Drawing.dll和System.Runtime.InteropServices.RuntimeInformation.dll。2 把win-x64目录的native目录下的文件全部拷贝到项目的运行目录Debug目录下。我这个是失败品,效果太差了,黑色的车压根就检测不到,后面的就不做了,仅作记录。想要获取到运动中的车辆,需要比较两帧视频的图片,然后做减法运算。

图像标注工具labelImg安装方法(win10+Python3.5)_labelimg原理_火星辉的博客-程序员秘密

reference:https://blog.csdn.net/u010807846/article/details/73480628/吐槽一下,坑太多。闪开,老司机开车了。系统环境:win10 64位,Python3.5。~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~1、下载源码https://github...

Mac OS在Vmware中如何修改桌面分辨率_此客户机操作系统不支持3d加速_AndyXia的博客-程序员秘密

在vmware中装过mac的都知道不好设置显示分辨率的,网上给的教程有说改com.apple.boot.plist, 有下载一个开源驱动的。试了一下,都不怎么靠谱。修改配置文件,会报无法写入,root权限也不成。  驱动装了也没效果,还是很低的一个分辨率。 怎么办?其实vmware已经帮我们继承了很多东西,不用那么麻烦的。1.安装vmware tool2.关闭虚拟机,在设置中找到显

winCE之bootloader的学习_AndyZhang的博客-程序员秘密

1、 bootloader的作用bootloader是BSP的一部分,BSP除了bootloader还有driver以及OAL等。很多嵌入式系统都会有bootloader的概念,想vxbox、嵌入式的linux等最基本的作用就是把os的镜像文件读入到RAM中运行。什么意思呢?就是所有的系统都是从固定的地址开始启动,像arm就是从0x00000000开始执行;像X86就是从一个不为0的地

Centos7 安装向日葵_centos7安装xiangrikui_西柚001的博客-程序员秘密

1.下载并解压安装包# 下载安装包wget http://download.oray.com/sunlogin/linux/SunloginClient9.6.1.tar.gz# 解压到指定文件夹内tar xf SunloginClient9.6.1.tar.gz -C /usr/src2.安装cd /usr/src/sunloginclient/ll3.运行安装脚本 install.sh 开始安装sh install.sh4.修改配置文件5.安装成功6.浏览器中打开

MIPS汇编语言程序设计_MJ-GOD的博客-程序员秘密

题目:编写一程序,实现将既包含在数组A中又包含在数组B中的无符号字数取出并存于内存中,其中数组A包含20个数,数组B包含30个数。如找不到相同的数则显示“No same!”设计流程:  代码:############## equal #####################################################################...

推荐文章

热门文章

相关标签