当前位置: 首页 > news >正文

PHP通用防注入安全代码

*************************
说明:
判断传递的变量中是否含有非法字符
如$_POST、$_GET
功能:
防注入
**************************/
<?php
//要过滤的非法字符
$ArrFiltrate=array("'",";","union");
//出错后要跳转的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 "<script language=/"javascript/">alert(/"Neeao提示,非法字符/");</script>";
if (empty($StrGoUrl)){
echo "<script language=/"javascript/">history.go(-1);</script>";
}else{
echo "<script language=/"javascript/">window.location=/"".$StrGoUrl."/";</script>";
}
exit;
}
}
?>
保存为checkpostandget.php
然后在每个php文件前加include(“checkpostandget.php“);即可

相关文章:

  • ASP木马Webshell安全解决办案
  • UBUNTU 安装PHP+MYSQL+NGINX
  • 系统密码难以获取时采取的方法
  • 大仙们的经典入侵经验摘录~
  • 内网渗透方法总结
  • 构造注入点后门代码(asp,aspx,php)
  • 浅谈web漏洞挖掘—特殊变量fuzz
  • IDS/IPS/WAF压力测试工具Inundator v0.5
  • MSSQL MYSQL ORACLE一些常用的命令
  • HTTP 头部解释
  • Safe3 WEB应用防火墙 linux硬件版
  • Hacking Oracle 之光标注射
  • 传说中的自动处理IIS权限的批处理文件
  • 用PHP写的简单登陆首页
  • 用PHP写的POP3电子邮件收取流程
  • @jsonView过滤属性
  • [iOS]Core Data浅析一 -- 启用Core Data
  • 【翻译】babel对TC39装饰器草案的实现
  • Docker: 容器互访的三种方式
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • HashMap剖析之内部结构
  • isset在php5.6-和php7.0+的一些差异
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • python_bomb----数据类型总结
  • socket.io+express实现聊天室的思考(三)
  • Travix是如何部署应用程序到Kubernetes上的
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 记一次用 NodeJs 实现模拟登录的思路
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 深度学习入门:10门免费线上课程推荐
  • 算法---两个栈实现一个队列
  • ​虚拟化系列介绍(十)
  • !$boo在php中什么意思,php前戏
  • #14vue3生成表单并跳转到外部地址的方式
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #QT(智能家居界面-界面切换)
  • (26)4.7 字符函数和字符串函数
  • (C++20) consteval立即函数
  • (ZT)出版业改革:该死的死,该生的生
  • (一)基于IDEA的JAVA基础12
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转)fock函数详解
  • (转)视频码率,帧率和分辨率的联系与区别
  • ***php进行支付宝开发中return_url和notify_url的区别分析
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .net知识和学习方法系列(二十一)CLR-枚举
  • .Net中间语言BeforeFieldInit
  • .NET中两种OCR方式对比
  • .pub是什么文件_Rust 模块和文件 - 「译」
  • /etc/motd and /etc/issue
  • @TableId注解详细介绍 mybaits 实体类主键注解
  • [autojs]autojs开关按钮的简单使用
  • [AutoSar]BSW_Memory_Stack_004 创建一个简单NV block并调试