資料庫被注入解決方案

2022-02-26 18:58:39 字數 1736 閱讀 1174

/***********定義要去除的字元,請注意,肯定不止一條,我的伺服器就查到許多不同的**************/

declare @delstr nvarchar(500)

set @delstr=''  --這裡被注入的字段串

/****************************************/

/**********以下為操作實體************/

set nocount on

declare @tablename nvarchar(100),@columnname nvarchar(100),@tbid int,@irow int,@iresult int

declare @sql nvarchar(2000)

set @iresult=0

declare cur cursor for

select name,id from sysobjects where xtype='u'

open cur

fetch

next from cur into @tablename,@tbid

while @@fetch_status=0

begin

declare cur1cursor for

select name from syscolumns where xtype in (231,167,239,175, 35, 99) and id=@tbid

open cur1

fetch next from cur1 into @columnname

while @@fetch_status=0

begin

set @sql='update [' + @tablename +'] set ['+ @columnname +']= substring([' + @columnname + '],' + '1, patindex( ''%' + @delstr +'%'', [' + @columnname + '])-1) + ' + 'substring([' + @columnname + '], patindex( ''%' + @delstr + '%'', [' + @columnname + ']) + ' +'len(''' + @delstr + ''') , datalength([' + @columnname + '])) where ['+@columnname+'] like ''%'+@delstr+'%'''

exec sp_executesql @sql

set @irow=@@rowcount

set @iresult=@iresult+@irow

if @irow>0

begin

print

'表:'+@tablename+',列:'+@columnname+'被更新'+convert(varchar(10),@irow)+'條記錄;'

end

fetch next from cur1 into @columnname

endclose cur1

deallocate cur1

fetch next from cur into @tablename,@tbid

endprint

'資料庫共有'+convert(varchar(10),@iresult)+'條記錄被更新!!!'

close cur

deallocate cur

set nocount off

記錄一下,有需要的朋友拿去試試

資料庫亂碼解決方案

oracle 資料庫亂碼解決方案 你插入資料的時候,用 轉變字串的亂碼函式 param str return public string getstr string str catch exception e 向bean裡面賦值 public void setaction string action...

資料庫死鎖解決方案

一 活鎖 如果事務t1封鎖了資料r,事務t2又請求封鎖r,於是t2等待。t3也請求封鎖r,當t1釋放了r上的封鎖之後系統首先批准了t3的請求,t2仍然等待。然後t4又請求封鎖r,當t3釋放了r上的封鎖之後系統又批准了t4的請求,t2有可能永遠等待,這就是活鎖的情形。避免活鎖的簡單方法是採用先來先服務...

資料庫亂碼解決方案

mysql會出現中文亂碼的原因不外乎下列幾點 1.server本身設定問題,例如還停留在latin1 2.table的語系設定問題 包含character與collation 3.客戶端程式 例如php 的連線語系設定問題 強烈建議使用utf8 utf8可以相容世界上所有字元 一 避免建立資料庫及表...