防止SQL注入

2021-05-21 19:27:36 字數 2659 閱讀 9970

最近看到很多人的**都被注入js,被iframe之類的。非常多。

本人曾接手過乙個比較大的**,被人家入侵了,要我收拾殘局。。

1.首先我會檢查一下伺服器配置,重新配置一次伺服器安全,可以參考

2.其次,用麥咖啡自定義策略,即使**程式有漏洞,別人也很難在檔案上寫入**了。

參考自定義策略,有了這個策略,再爛的程式,你也無法寫入我的檔案

3.可以用網路超級巡警刪除被注入的js**。

參考 http://hi.baidu.com/anlish/blog/item/ba45bb18eac77e0534fa4134.html

4.如何批量刪除資料庫中被注入的**?

在資料庫查詢分析器執行這段**即可

sql code

declare

@fieldtype

sysname

set@fieldtype='

varchar'--

刪除處理

declare

hcforeach

cursor

global

forselectn'

update '+

quotename

(o.name)

+n'set '+

quotename

(c.name) +n

'= replace('+

quotename

(c.name) +'

,''''

,'''')'

from

sysobjects o,syscolumns c,systypes t

where

o.id

=c.id

andobjectproperty

(o.id,n

'isusertable')

=1andc.xusertype

=t.xusertype

andt.name

=@fieldtype

exec

sp_msforeach_worker

@command1=n

'?'

5.建立乙個觸發器,只要有 就不給插入,對效能會有點影響

sql code

create

trigger

tr_table_insertupdate

ontablename

forinsert

,update

asif

exists

(select

1from

inserted

where

data

like'%%

')begin

raiserror('

不能修改或者新增',

16,1);

rollback

transaction

endgo

6.最重要的還是程式的寫法,用引數化sql或儲存過程

例如c# code

protected

void

cmdok_click(

object

sender, eventargs e)

;string

stra =;

inta

=stra.length;

intj;

for( j =0

; j

<

a; j++)

intstrpid =0

;

string

sqla

=sql.tostring();

try

catch

(sqlexception ex)

cmdreturn.text

=strpid.tostring();

。。。。。。。。。

7.通過url傳遞的引數要用加密解密

c# code

傳輸

string

sztmp ="

safdsfdsafdsfytrsd";

sztmp

=server.urlencode(sztmp);

接收string stra

=server.urldecode(request.querystring(sztmp));

8.把要使用的引數處理一下單引號,再放到sql裡面 

例如 string stra=aa.replace("'","''")

用引數化sql可以不用處理單引號

指定引數型別和過濾掉單引號,就可以杜絕99.9%入侵了

另外說一句:網上那些被人奉如聖經的過濾 update insert  等關鍵字的程式是用處不大的  upupdatedate 過濾掉 update還是update

還會造成不必要的麻煩

防止SQL注入

1.什麼是sql注入 所謂sql注入,就是通過把sql命令插入到web表單遞交或輸入網域名稱或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的sql命令。通過遞交引數構造巧妙的sql語句,從而成功獲取想要的資料。2.sql注入的種類 從具體而言,sql注入可分為五大類,分別是 數字型注入 字元型注入...

防止Sql注入

防不勝防 可以肯定的說,過濾不是辦法,而且效率很低 過濾的目的主要是提供反饋資訊,必須前後臺都要做 但是,有很多辦法可以繞過 致命的單引號 能做的事情按重要性大致如下 1。資料庫訪問用預定義會話 preparedstatement 從根本上防止sql截斷 2。後台過濾 為輸入的資訊提供反饋資訊,只要...

防止SQL注入

net防sql注入方法 1,利用sqlcommand傳引數的方法 stringstrsql select from user where user id id sqlcommand cmd newsqlcommand cmd.commandtext strsql cmd.parameters.add...