程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> 批量調換sqlserver數據庫掛馬字段並防備sql注入進擊的代碼

批量調換sqlserver數據庫掛馬字段並防備sql注入進擊的代碼

編輯:MSSQL

批量調換sqlserver數據庫掛馬字段並防備sql注入進擊的代碼。本站提示廣大學習愛好者:(批量調換sqlserver數據庫掛馬字段並防備sql注入進擊的代碼)文章只能為提供參考,不一定能成為您想要的結果。以下是批量調換sqlserver數據庫掛馬字段並防備sql注入進擊的代碼正文


起首備份數據庫,以防不用要的喪失。爾後對一切被掛馬的小於8000字符的varchar字段履行

update 表名 set 字段名=replace(字段名,'<Script Src=http://c.n%75clear3.com/css/c.js></Script>','')

個中<Script Src=http://c.n%75clear3.com/css/c.js></Script>為掛馬字段。履行後掛馬字段被消除。然則有部門字段,好比內容字段等年夜於8000字符的varchar字段則須要履行

update 表名 set 表項=replace(cast(表項 as varchar(8000)),'<Script Src=http:/c.nuclear3.com/css/c.js> </Script> ','')

來更新被掛馬字段,而房產網因為內容比擬多,履行以上語句的時刻會產生假逝世景象,因而加個區間分兩次停止,一次處置15000條得以處理。

update 表名 set 表項=replace(cast(表項 as varchar(8000)),'<Script Src=http:/c.nuclear3.com/css/c.js> </Script> ','') where id>1 and id<15000

以上被掛馬成績普通都是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 "<Script Language=javascript>alert('不法注入!你的行動已被記載!!');history.back(-1);</Script>"
Response.End
End If
Next
Set regEx = Nothing
End function
%>

做一個通用的sql防注入頁面,把它包括在conn.asp數據庫銜接語句裡邊,如許就完成了全站的防備 sql 注入的進擊了。然則前台的相似?id=如許的語句照樣存在注入破綻,須要我們嚴厲過濾 request.form 和 request.querystring 獲得的內容。果斷不消 request("name") 如許的方法獲得值,但凡采取 cookies 保留的內容,盡可能不要用在sql語句裡停止查詢數據庫操作。

假如不熟習sqlserver的同伙可以用軟件來完成
sqlserver 數據庫批量調換對象(數據庫及文本文件查找調換) v1.0中文綠色版

SQLServer 數據庫批量查找調換對象1.2 SQL木馬消除助手

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved