SQL注入(SQL Injection)
簡介
SQL注入攻擊指的是通過構建特殊的輸入作為參數傳入Web應用程序,而這些輸入大都是SQL語法里的一些組合,通過執行SQL語句進而執行攻擊者所要的操作,其主要原因是程序沒有細致地過濾用戶輸入的數據,致使非法數據侵入系統。
根據相關技術原理,SQL注入可以分為平臺層注入和代碼層注入。前者由不安全的數據庫配置或數據庫平臺的漏洞所致;后者主要是由于程序員對輸入未進行細致地過濾,從而執行了非法的數據查詢。基于此,SQL注入的產生原因通常表現在以下幾方面:
1.?不當的類型處理;
2.?不安全的數據庫配置;
3.?不合理的查詢集處理;
4.?不當的錯誤處理;
5.?轉義字符處理不合適;
6.?多個提交處理不當。
?
情景分析
園子里關于sql注入的文章很多,這里我就不重復寫了,找了一篇寫得不錯的文章,這里直接提供個傳送門:淺談SQL注入風險 - 一個Login拿下Server
防止SQL注入
1.?永遠不要信任用戶的輸入。對用戶的輸入進行校驗,可以通過正則表達式,或限制長度;對單引號和雙"-"進行轉換等。
2.?永遠不要使用動態拼裝sql,可以使用參數化的sql或者直接使用存儲過程進行數據查詢存取。(不要拼sql,使用參數化)
3.?永遠不要使用管理員權限的數據庫連接,為每個應用使用單獨的權限有限的數據庫連接。(給程序分配合理的數據庫操作權限)
4.?不要把機密信息直接存放,加密或者hash掉密碼和敏感的信息。(敏感信息加密)
5.?應用的異常信息應該給出盡可能少的提示,最好使用自定義的錯誤信息對原始錯誤信息進行包裝。
?
相關文章:
跨站腳本攻擊(XSS)
跨站請求偽造(CSRF/XSRF)
開放重定向(Open Redirection)
過多提交(Over Posting)
[譯]構建現代Web應用的安全指南
原文地址:http://www.cnblogs.com/Erik_Xu/p/5514879.html
.NET社區新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注
總結
以上是生活随笔為你收集整理的SQL注入(SQL Injection)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 全球首发免费的MySql for Ent
- 下一篇: 在.NET Core中使用MySQL5.