搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
很楠不爱3
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
深度学习:大规模模型分布式训练框架DeepSpeed_大模型训练的分布式框架
2
基于SSM架构实现学生信息管理系统_学生管理系统java ssm框架
3
远程GPU服务器Autodl搭建Pytorch环境_autodl 安装torch
4
K8s持久化存储PV和PVC(通俗易懂)_k8s pv pvc
5
计算机网络(一)
6
计算机常用数理基础知识_计算机相关数学
7
【LeetCode】会议调度问题 (动态规划)_动态规划求解会议安排问题
8
Python2.Python与matlab自定义函数(封装)_matlab的def函数
9
Python3学习笔记
10
CentOS 7中文输入法安装教程_centos7安装中文输入法
当前位置:
article
> 正文
正则表达式防止SQL注入_防sql注入正则表达式
作者:很楠不爱3 | 2024-02-22 18:44:19
赞
踩
防sql注入正则表达式
本来对正则表达式不是很了解,但由于项目需要,项目主要没有采用存储过程方式来存储 SQL语句,所以很有可能被黑客用SQL注入攻击,现在就在网上找了找解决办法,在业务层来过滤SQL语句,防止SQL注入攻击,主要是采用了正则表达式,因为正则表达式对字符串的操作是很强大的.
首先用一个Validate()类来封装正则表达式和相关操作:
//验证是否有SQL注入字符
private bool ValidateQuery(Hashtable queryConditions)
{
//构造SQL的注入关键字符
#region 字符
string[] strBadChar = {"and"
,"exec"
,"insert"
,"select"
,"delete"
,"update"
,"count"
,"or"
//,"*"
,"%"
,":"
,"/'"
,"/""
,"chr"
,"mid"
,"master"
,"truncate"
,"char"
,"declare"
,"SiteName"
,"net user"
,"xp_cmdshell"
,"/add"
,"exec master.dbo.xp_cmdshell"
,"net localgroup administrators"};
#endregion
//构造正则表达式
string str_Regex = ".*("
for (int i = 0; i < strBadChar.Length - 1; i++)
{
str_Regex += strBadChar[i] + "|"
}
str_Regex += strBadChar[strBadChar.Length - 1] + ").*"
//避免查询条件中_list情况
foreach (string str in queryConditions.Keys)
{
if(str.Substring(str.Length - 5)=="_list")
{
//去掉单引号检验
str_Regex = str_Regex.Replace("|'|", "|");
}
string tempStr = queryConditions[str].ToString();
if (Regex.Matches(tempStr.ToString(), str_Regex).Count > 0)
{
//有SQL注入字符
return true;
}
}
return false;
}
queryConditions 是一个hashtable,用于传入查询条件,hashtable中的键值(key)为:@name,相对应SQL中的参数,那Value则对应为参数的实际值了.
正则表达式的应用主要是按这样的规律来过滤字符串的:
.*(and|exec|select|update|or|'|''|).* // str_Regex
核心函数主要是: Regex.Matches(tempStr.ToString(), str_Regex).
要是在 tempStr 字符串中含有非法字符, 则函数的Count值将大于0
好了,就这样就可以判断是否含有SQL注入攻击字符了.
声明:
本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:
https://www.wpsshop.cn/w/很楠不爱3/article/detail/131101
推荐阅读
article
【
正则表达式
】
字符
匹配
篇_
正则表达式
匹配
指定
字符
串...
之前是写在另一个平台,但更新的断断续续,这次打算回炉重造,整理一波。1.创建
正则表达式
两种方式:字面量:由斜杠包围而不是...
赞
踩
article
C#
正则表达式
:
匹配
字符
串
指定
字符
内容_
c#
正则表达式
匹配
带有
指定
字符
...
1 功能需求
匹配
字符
串
“m1.large(vcpu 2,ram 4G)|c95f5529-47e8-46d4-85da-...
赞
踩
article
asp
.
net
正则表达式
的使用_
asp
.
net
正则表达式
...
转载:原文在这
正则表达式
是个非常重要的工具,最早在Perl等脚本语言中广泛使用。它语法简单,但功能强大,可以从大量的字符...
赞
踩
article
ASP.NET与
正则表达式
_
asp
.
net
mac
地址
正则表达式
...
1、Match类Regex r = new Regex("abc");Match m = r.Match("abc123...
赞
踩
article
正则表达式...
正则表达式re.match与re.search的区别re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,...
赞
踩
article
JS
正则
表达式
获取
小
括号
中
括号
花
括号
内的内容
_
js
正则
检查
小
括号
...
JS
正则
表达式
获取
小
括号
中
括号
花
括号
内的内容var str="123{xxxx}456[我的]789123[你的...
赞
踩
article
《
Python
进阶系列》十六:详解
Python
中的
正则表达式
_
python
正则表达式
匹配
提取
包含
...
正则表达式
为高级的文本模式
匹配
、抽取、与/或文本形式的搜索和替换功能提供了基础。简单地说,
正则表达式
是一些由字符和特殊符...
赞
踩
article
正则表达式
(
Java
)...
正则表达式
是由一些特定的字符组成,代表一个规则,可以用来检验数据格式是否合法,也可以在一段文本中查找满足要求的内容。正则...
赞
踩
article
Python
玩转数据 19 - 数据操作
正则表达式
Regular Exp
re
ssions 搜索...
本文主要介绍一下
Python
正则表达式
,搜索
模式匹配
。_
re
.
multiline
re
.
multiline
...
赞
踩
article
Python
正则表达式
匹配
任意字符...
.(句点)
匹配
除了换行之外的所有一个字符, .*(点-星)
匹配
除了换行外的所有字符>>> >>> r=re.comp...
赞
踩
article
正则表达式
任意
字符
除了
_
Python
正则表达式
居然是这么用
的
...
Python
是一种在数据处理上非常占优势
的
计算机编程语言,这一篇文章就记录我在学习
正则表达式
时
的
经验吧。此处只介绍常用
的
...
赞
踩
article
python
正则
匹配
任意
字符
_Python
正则
表达式
匹配
任意
字符
的写法...
.(句点)
匹配
除了换行之外的所有一个
字符
, .*(点-星)
匹配
除了换行外的所有
字符
>>>>>> r=re.compile...
赞
踩
article
python
之[
正则表达式
]
--
通配符
使用方法
(
最新可用
)
_
python
通配符
...
【代码】
python
之[
正则表达式
]
--
通配符
使用方法
(
最新可用
)
_
python
通配符
python
通配符
...
赞
踩
article
【
Python
】
正则表达式
re
库
的
常见使用_
re
匹配
数字
...
正则表达式
1.
正则表达式
特殊字符^
匹配
最后面,即^后一个字符在要
匹配
的
字符串中是第一个,否则返回空列表 ...
赞
踩
article
【全网最全】
Python
正则表达式
详解
_
python
正则表达式
...
正则表达式
使用单个字符串来描述、匹配一系列符合某个句法规则的字符串.
Python
自1.5版本起增加了re 模块,它提...
赞
踩
article
Python
学习
7
(
正则
表达式
)_
python
正则
$...
Python
学习
7
,
正则
表达式
_
python
正则
$
python
正则
$ ...
赞
踩
article
Python
RE (
一
)
正则表达式
——基于
match
()
_
re
.
match
正则表达式
...
本文为笔者自学+复习所用。
正则表达式
中,字符和字符可以和自己匹配,除了元字符(metacharacter):. ^ $ ...
赞
踩
article
Python
正则表达式
-总结_
python
正则表达式
除
某个
字符串
之外的
任意
字符串
...
总结--常用正则表达式符号'.' 默认匹配
除
\n之外的
任意
一个字符,若指定flag DOTALL,则匹配
任意
字符,包...
赞
踩
article
python
详解(9)——
进阶
(3):
正则
表达
式
,这一篇就够了!
_
python
正则
表达
进阶
...
正则
表达
式
的讲解
_
python
正则
表达
进阶
python
正则
表达
进阶
目录 ...
赞
踩
article
[轻松学会
shell
编程]-3、
grep
、
正则表达式
、
a
wk的详细用法、分析系统自带的两个文件(fu...
目录1、通配符2、
正则表达式
2.1、
grep
使用正则的语法2.1.1、-
i
、-o、-n2.1.2、 -A、-B、-C2...
赞
踩
相关标签
正则表达式
javascript
字符匹配
c#
C#
asp.net
python
ruby
js
java
JavaScript
开发语言
数据操作
findall
match
正则表达式 任意字符除了
正则表达式?代表什么
正则表达式匹配任意字符串
正则表达式匹配多个关键字
python正则匹配任意字符