批量替换sqlserver数据库挂马字段并防范sql注入攻击的代码
有时候网站sqlserver数据库被挂马了,网上的很多软件与方法都是针对text小于8000的,这里的方法貌似可行,需要的朋友可以参考下。
首先备份数据库,以防不必要的损失。而后对所有被挂马的小于8000字符的varchar字段执行
代码如下:
update 表名 set 字段名=replace(字段名,'','')
其中为挂马字段。执行后挂马字段被清除。但是有部分字段,比如内容字段等大于8000字符的varchar字段则需要执行
代码如下:
update 表名 set 表项=replace(cast(表项 as varchar(8000)),' ','')
来更新被挂马字段,而房产网由于内容比较多,执行以上语句的时候会发生假死现象,于是加个区间分两次进行,一次处理15000条得以解决。
代码如下:
update 表名 set 表项=replace(cast(表项 as varchar(8000)),' ','') where id>1 and id
以上被挂马问题一般都是sql数据库,这是sql数据库特有的注入漏洞。换数据库不现实,只能针对以上情况进行防范。思路就是在所有数据库链接请求那里做相应的过滤。
代码如下:
Response.Buffer = True '缓存页面
'防范get注入
If Request.QueryString "" Then StopInjection(Request.QueryString)
'防范post注入
If Request.Form "" Then StopInjection(Request.Form)
'防范cookies注入
If Request.Cookies "" Then StopInjection(Request.Cookies)
'正则子函数
Function StopInjection(Values)
Dim regEx
Set regEx = New RegExp
regEx.IgnoreCase = True
regEx.Global = True
regEx.Pattern = "'|;|#|([\s\b+()]+([email=select%7Cupdate%7Cinsert%7Cdelete%7Cdeclare%7C@%7Cexec%7Cdbcc%7Calter%7Cdrop%7Ccreate%7Cbackup%7Cif%7Celse%7Cend%7Cand%7Cor%7Cadd%7Cset%7Copen%7Cclose%7Cuse%7Cbegin%7Cretun%7Cas%7Cgo%7Cexists)[/s/b]select|update|insert|delete|declare|@|exec|dbcc|alter|drop|create|backup|if|else|end|and|or|add|set|open|close|use|begin|retun|as|go|exists)[\s\b[/email]+]*)"
Dim sItem, sValue
For Each sItem In Values
sValue = Values(sItem)
If regEx.Test(sValue) Then
Response.Write ""
Response.End
End If
Next
Set regEx = Nothing
End function
%>
做一个通用的sql防注入页面,把它包含在conn.asp数据库连接语句里边,这样就实现了全站的防范 sql 注入的攻击了。但是前台的类似?id=这样的语句还是存在注入漏洞,需要我们严格过滤 request.form 和 request.querystring 获取的内容。坚决不用 request("name") 这样的方式获取值,凡是采用 cookies 保存的内容,尽量不要用在sql语句里进行查询数据库操作。
如果不熟悉sqlserver的朋友可以用软件来实现

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

导入步骤如下:将 MDF 文件复制到 SQL Server 的数据目录(通常为 C:\Program Files\Microsoft SQL Server\MSSQL\DATA)。在 SQL Server Management Studio(SSMS)中,打开数据库并选择“附加”。单击“添加”按钮,选择 MDF 文件。确认数据库名称,点击确定按钮即可。

对于 SQL Server 数据库中已存在同名对象,需要采取以下步骤:确认对象类型(表、视图、存储过程)。如果对象为空,可使用 IF NOT EXISTS 跳过创建。如果对象有数据,使用不同名称或修改结构。使用 DROP 删除现有对象(谨慎操作,建议备份)。检查架构更改,确保没有引用删除或重命名的对象。

当 SQL Server 服务无法启动时,可采取以下步骤解决:检查错误日志以确定根本原因。确保服务帐户具有启动服务的权限。检查依赖项服务是否正在运行。禁用防病毒软件。修复 SQL Server 安装。如果修复不起作用,重新安装 SQL Server。

要查看 SQL Server 端口号:打开 SSMS,连接到服务器。在对象资源管理器中找到服务器名称,右键单击它,然后选择“属性”。在“连接”选项卡中,查看“TCP 端口”字段。

SQL Server 数据库文件通常存储在以下默认位置:Windows: C:\Program Files\Microsoft SQL Server\MSSQL\DATALinux: /var/opt/mssql/data可通过修改数据库文件路径设置来自定义数据库文件位置。

若误删 SQL Server 数据库,可采取以下步骤恢复:停止数据库活动;备份日志文件;检查数据库日志;恢复选项:从备份恢复;从事务日志恢复;使用 DBCC CHECKDB;使用第三方工具。请定期备份数据库并启用事务日志以防止数据丢失。

pycharm可以通过使用搜索和替换功能、结合正则表达式进行高级替换、使用代码重构功能、使用Structural Search and Replace和导入外部工具进行批量替换来批量替换。详细介绍:1、使用搜索和替换功能,打开PyCharm,打开要进行批量替换的项目或文件夹等等。

问题发现这次使用的是SqlServer数据库,之前并没有使用过,但是问题不大,我按照需求文档的步骤连接好SqlServer之后,启动SpringBoot项目,发现了一个报错,如下:刚开始我以为是SqlServer连接问题呢,于是便去查看数据库,发现数据库一切正常,我首先第一时间问了我的同事,他们是否有这样的问题,发现他们并没有,于是我便开始了我最拿手的环节,面向百度编程。开始解决具体报错信息是这样,于是我便开始了百度报错:ERRORc.a.d.p.DruidDataSource$CreateCo
