**:
1.不要使用sa使用者連線資料庫
2、新建乙個public許可權資料庫使用者,並用這個使用者訪問資料庫
3、[角色]去掉角色public對sysobjects與syscolumns
物件的select訪問許可權
4、[使用者]使用者名稱-> 右鍵-屬性-許可權-在sysobjects與syscolumns上面打「×」
5、通過以下**檢測(失敗表示許可權正確,如能顯示出來則表明許可權太高):
declare
@t varchar(255),
@c varchar(255)
declare
table_cursor
cursor
forselect
a.name,b.name
from
sysobjects
a,syscolumns
bwhere
a.id=b.id
and
a.xtype= 'u '
and
(b.xtype=99
or b.xtype=35
or b.xtype=231
or b.xtype=167)
open
table_cursor
fetch
next
from
table_cursor
into
@t,@c
while(@@fetch_status=0)
begin
@cfetch
next
from
table_cursor
into
@t,@c
endclose
table_cursor
deallocate
table_cursor
另外,總結如下:
1.盡量使用引數化查詢
2.把乙個單引號換成兩個單引號
3.資料庫許可權的控制
4.過濾特殊字串(如 select/update/drop/...)**(
5.使用httputility.htmlencode對輸入的內容進行編碼,徹底禁用其中的標籤,然後對有用標籤的進行replace還原。(.aspx頁面 validaterequest=true 預設禁止)
防範sql注入
真沒語言了,公司的 都有這個漏洞,明天趕緊把改了 sql注入式攻擊是利用是指利用設計上的漏洞,在目標伺服器上執行sql命令以及進行其他方式的攻擊 動態生成sql命令時沒有對使用者輸入的資料進行驗證是sql注入攻擊得逞的主要原因。比如 如果你的查詢語句是select from admin where ...
sql 注入防範
關於身份驗證 sql select from user where name name and pwd pwd 假設只知道使用者名稱不知道密碼 1 我們在使用者名稱位置輸入 admin or 1 1 注 內容只有 內的。看看sql會變成什麼 sql select from user where na...
SQL注入的防範
所謂sql注入,就是通過把sql命令偽裝成正常的http請求引數,傳遞到服務端,欺騙伺服器最終執行惡意的sql命令,達到入侵目的。攻擊者可以利用sql注入漏洞,查詢非授權資訊,修改資料庫伺服器的資料,改變表結構,甚至是獲取伺服器root許可權。預編譯語句使用引數佔位符來替代需要動態傳入的引數,這樣攻...