sql注入式攻擊是利用是指利用設計上的漏洞,在目標伺服器上執行sql命令以及進行其他方式的攻擊
動態生成sql命令時沒有對使用者輸入的資料進行驗證是sql注入攻擊得逞的主要原因。
比如:
如果你的查詢語句是select * from admin where username='"&user&"' and password='"&pwd&"'"
那麼,如果我的使用者名稱是:1' or '1'='1
那麼,你的查詢語句將會變成:
select * from admin where username='1 or '1'='1' and password='"&pwd&"'"
這樣你的查詢語句就通過了,從而就可以進入你的管理介面。
所以防範的時候需要對使用者的輸入進行檢查。特別式一些特殊字元,比如單引號,雙引號,分號,逗號,冒號,連線號等進行轉換或者過濾。
需要過濾的特殊字元及字串有:
net user
xp_cmdshell
/add
exec master.dbo.xp_cmdshell
net localgroup administrators
select
count
asc
char
mid
'
:
"
insert
delete from
drop table
update
truncate
from
% [code start]
[code end]
asp版的防範sql注入式攻擊**~:
response.write "alert('非法位址!!');"
response.write "location.href='error.asp';"
response.write ""
end if
%>
[code end]
///
/// 當有資料時交時,觸發事件
///
///
///
///
///sql注入過濾
///
/// 要過濾的字串
/// 如果引數存在不安全字元,則返回true
public bool sqlfilter(string intext)
}
return false;
} ///
/// 校驗引數是否存在sql字元
///
///
private void goerr(string tm)
} if (request.querystring != null)
}
} if (request.form.count > 0)
else
if (s3 != s1)
}
}
} #region sql注入式攻擊**分析
///
/// 處理使用者提交的請求
/// 分析使用者請求是否正常
///
/// 傳入使用者提交資料
/// 返回是否含有sql注入式攻擊**
private bool processsqlstr(string str)
}
}
}
catch
return returnvalue;
}
#endregion
防止SQL注入
1.什麼是sql注入 所謂sql注入,就是通過把sql命令插入到web表單遞交或輸入網域名稱或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的sql命令。通過遞交引數構造巧妙的sql語句,從而成功獲取想要的資料。2.sql注入的種類 從具體而言,sql注入可分為五大類,分別是 數字型注入 字元型注入...
防止SQL注入
最近看到很多人的 都被注入js,被iframe之類的。非常多。本人曾接手過乙個比較大的 被人家入侵了,要我收拾殘局。1.首先我會檢查一下伺服器配置,重新配置一次伺服器安全,可以參考 2.其次,用麥咖啡自定義策略,即使 程式有漏洞,別人也很難在檔案上寫入 了。參考自定義策略,有了這個策略,再爛的程式,...
防止Sql注入
防不勝防 可以肯定的說,過濾不是辦法,而且效率很低 過濾的目的主要是提供反饋資訊,必須前後臺都要做 但是,有很多辦法可以繞過 致命的單引號 能做的事情按重要性大致如下 1。資料庫訪問用預定義會話 preparedstatement 從根本上防止sql截斷 2。後台過濾 為輸入的資訊提供反饋資訊,只要...