PHP用正则匹配字符串中的特殊字符防SQL注入
本文出至:新太潮流网络博客
/**
* [用正则匹配字符串中的特殊字符]
* @E-mial wuliqiang_aa@163.com
* @TIME 2017-04-07
* @WEB http://blog.iinu.com.cn
* @param [data] $str [要匹配的任何数据]
* @return [type] [description]
*/
function is_string_regular($str) { $pregs = '/select|insert|update|CR|document|LF|eval|delete|script|alert|\'|\/\*|\#|\--|\ --|\/|\*|\-|\+|\=|\~|\*@|\*!|\$|\%|\^|\&|\(|\)|\/|\/\/|\.\.\/|\.\/|union|into|load_file|outfile/';
if(is_array($str)){ if(TestArray($str) == 1){
//一维数组
foreach($str as $k=>$v){
//遍历
$check= preg_match($pregs,$v);
if($check == 1){
$int_arr = array('status'=>1,'result'=>$str,'message'=>'检测含有特殊字符');
}else{
$int_arr = array('status'=>0,'result'=>$str,'message'=>'检测没有特殊字符');
}
}
}else if(TestArray($str) == 2){
//二维数组
foreach($str as $k=>$v){
foreach($v as $ks=>$vs){
//遍历
$check= preg_match($pregs,$v);
if($check == 1){
$int_arr = array('status'=>1,'result'=>$str,'message'=>'检测含有特殊字符');
}else{
$int_arr = array('status'=>0,'result'=>$str,'message'=>'检测没有特殊字符');
}
}
}
}
}else if(is_string($str)){
//字符串
$check= preg_match($pregs,$str);
if($check == 1){
$int_arr = array('status'=>1,'result'=>$str,'message'=>'检测含有特殊字符');
}else{
$int_arr = array('status'=>0,'result'=>$str,'message'=>'检测没有特殊字符');
}
}
return $int_arr;
}
/**
* [TestArray 检测数组是一维还是二维]
* @E-mial wuliqiang_aa@163.com
* @TIME 2017-04-07
* @WEB http://blog.iinu.com.cn
* @param [type] $array [数组]
*/
function TestArray($array){
if(is_array($array)){
foreach($array as $v){
if(is_array($v)){
$Int_Array = array('Int'=>2,'Test'=>'检测为二维数组');
}else{
$Int_Array = array('Int'=>1,'Test'=>'检测为一维数组');
}
}
}else{
$Int_Array = array('Int'=>3,'Test'=>'检测为不是数组');
}
return $Int_Array;
}
本文出至:新太潮流网络博客
PHP用正则匹配字符串中的特殊字符防SQL注入的更多相关文章
- python3 re模块正则匹配字符串中的时间信息
匹配时间: # -*- coding:utf-8 -*- import re def parseDate(l): patternForTime = r'(\d{4}[\D]\d{1,2}[\D]\d{ ...
- js正则匹配字符串
这里我第一时间想到的就是用 js 的search 和 match ,其中最常见的是match: 1. str.search(regexp):search()方法不支持全局搜索,因为会忽略正则表达式参数 ...
- JQUERY选择和操作DOM元素(利用正则表达式的方法匹配字符串中的一部分)
JQUERY选择和操作DOM元素(利用正则表达式的方法匹配字符串中的一部分) 1.匹配属性的开头 $("[attributeName^='value']"); 2.匹配属性的结尾 ...
- 正则去除字符串中的html标签,但不去除<br>标签
一.去除html标签 filterHTMLTag(msg) { var msg = msg.replace(/<\/?[^>]*>/g, ''); //去除HTML Tag msg ...
- C 语言实例 - 删除字符串中的特殊字符
C 语言实例 - 删除字符串中的特殊字符 C 语言实例 C 语言实例 删除字符串中的除字母外的字符. 实例 #include<stdio.h> int main() { ]; int i, ...
- cshtml中字符串中表示特殊字符@
用“@@”表示字符串中的特殊字符@
- 【面试题】JS使用parseInt()、正则截取字符串中数字
JS使用parseInt()和正则截取字符串中数字 点击打开视频讲解更加详细 parseInt() 函数 定义和用法 parseInt() 函数可解析一个字符串,并返回一个整数. 当参数 radix ...
- mybatis的sql中使用$会出现sql注入示例
mybatis的sql中使用$会出现sql注入示例: 模拟简单登录场景: 页面代码: function login(){ //sql注入 var user = { username : "' ...
- DVWA中low级的sql注入漏洞的简单复现
第一次成功复现一个简单漏洞,于是写下这篇随笔记录一下 首先我们来看dvwa中low级的sql注入的源码 源码文件路径如下图: 源码如下: <?php if(isset($_GET['Submit ...
随机推荐
- Yum软件包管理详解
目录 1. Yum 1.1 检查和更新包 1.1.1 查询更新 1.1.2 更新包 1.1.3 使用 ISO 和 Yum 离线升级系统 1.2 使用包 1.2.1 搜索包 1.2.2 列出包 1.2. ...
- Chapter 3 Phenomenon——22
He paused, and for a brief moment his stunning face was unexpectedly vulnerable. 他愣住了,然后一段时间他令人昏迷的脸变 ...
- 主键映射和Hibernate映射
组件映射 类组合关系的映射,也叫做组件映射! 注意:组件类和被包含的组件类,共同映射到一张表! 需求: 如汽车与车轮 代码示例: 1.JavaBean Wheel.java package com.g ...
- 31-hadoop-hbase-mapreduce操作hbase
有一些大的文件,需要存入HBase中,其思想是先把文件传到HDFS上,利用map阶段读取<key,value>对,可在reduce把这些键值对上传到HBase中. HbaseMapper: ...
- 如何设置httpd-mpm-conf的参数
原文链接:http://blog.sina.com.cn/s/blog_626998030102wohs.html 首先确定apache是使用哪种工作模式是prefork模式还是worker模式查看方 ...
- Makefile中.PHONY的作用
单词phony (即phoney)的意思是:伪造的,假的.来自collins的解释是: If you describe something as phoney, you disapprove of i ...
- windows环境下搭建Java开发环境(二):Tomcat安装和配置
一.资源下载 官网:http://tomcat.apache.org/ 本人安装的是Tomcat8.5,安装包百度云资源:链接:https://pan.baidu.com/s/17SDFsoS0yAP ...
- [转]bootstrap栅格系统的属性及使用
本文转自:https://www.cnblogs.com/LJYqq/p/6791512.html 栅格系统 媒体查询 在栅格系统中,我们在 Less 文件中使用以下媒体查询(media query) ...
- 开放本地MYSQL服务器端口
有时候别人需要连接你的数据库,这个时候你就要开放数据库的端口,让别的主机可以连接上,步骤如下: 1.打开防火墙,新建入站规则,开放MySQL3306端口 2.执行以下两个命令: (1)如果你想允许用户 ...
- Android - AMS源码分析
Android核心分析之AMS App和AMS(SystemServer进程)还有zygote进程分属于三个独立的进程 App与AMS通过Binder进行IPC通信,AMS(SystemServer进 ...