主頁(yè) > 知識(shí)庫(kù) > 除MSSQL數(shù)據(jù)庫(kù)text字段中惡意腳本的刪方法

除MSSQL數(shù)據(jù)庫(kù)text字段中惡意腳本的刪方法

熱門標(biāo)簽:鐵路電話系統(tǒng) AI電銷 網(wǎng)站排名優(yōu)化 服務(wù)外包 百度競(jìng)價(jià)排名 Linux服務(wù)器 呼叫中心市場(chǎng)需求 地方門戶網(wǎng)站
方法很簡(jiǎn)單:text字段不能使用Replace,所以使用patindex
復(fù)制代碼 代碼如下:

-select * from Product where P_Intro like '%script src="http://my.stsw518.cn/a002/1.js" src="http://my.stsw518.cn/a002/1.js">/script>%'
--text字段的替換處理示例--全表替換
-- select datalength(P_Intro),* from Product
--邀月 整理
--定義替換的字符串
declare @s_str nvarchar(4000),@d_str nvarchar(4000)
select @s_str='script src="http://my.stsw518.cn/a002/1.js" src="http://my.stsw518.cn/a002/1.js">/script>' --要替換的字符串
,@d_str='' --替換成的字符串


--因?yàn)橹荒苡胮atindex,所以對(duì)于搜索字符串做處理
set @s_str='%'+@s_str+'%'

--定義游標(biāo),循環(huán)處理數(shù)據(jù)
declare @id bigint
declare #tb cursor for select P_ID from Product where P_Intro like '%script src="http://my.stsw518.cn/a002/1.js" src="http://my.stsw518.cn/a002/1.js">/script>%'
-- where P_ID=300727 ----where P_Intro like '%script src="http://my.stsw518.cn/a002/1.js" src="http://my.stsw518.cn/a002/1.js">/script>%'
open #tb
fetch next from #tb into @id
while @@fetch_status=0
begin
--字符串替換處理
declare @p varbinary(16)
,@p1 int,@p2 int
,@rplen int,@step int,@len int

select @p=textptr(P_Intro)
,@rplen=len(@s_str)-2
,@step=len(@d_str)
,@p1=patindex(@s_str,P_Intro)
,@len=datalength(P_Intro)
,@p2=0
from Product
where P_id=@id

while @p1>0
begin
set @p2=@p1+@p2-1
updatetext Product.P_Intro @p @p2 @rplen @d_str
select @p2=@p2+1,@p1=patindex(@s_str,substring(P_Intro,@p2+1,@len))
from Product where P_ID=@id
end
fetch next from #tb into @id
end
close #tb
deallocate #tb

--顯示結(jié)果
---- select datalength(P_Intro),* from Product

標(biāo)簽:仙桃 黃山 湘潭 衡水 湖南 崇左 蘭州 銅川

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《除MSSQL數(shù)據(jù)庫(kù)text字段中惡意腳本的刪方法》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266