激战的后厨2观看完整版,強姦亂倫強姦在线观看,国产无套内射普通话对白,老头呻吟喘息硕大撞击,他扒开我小泬添我三男一女视频

廈門服務器租用>業界新聞>美國站群服務器如何做好防護SQL注入漏洞

美國站群服務器如何做好防護SQL注入漏洞

發布時間:2020/5/29 14:49:11    來源: 縱橫數據

美國站群服務器如何做好防護SQL注入漏洞【艾娜】

1. SQL注入原理

漏洞形成原因:用戶輸入的數據被SQL解釋器執行。

2. 常見的SQL注入類型分類

數字型 & 字符型,不管注入類型如何,攻擊者的目的只有一點,那就是繞過程序限制,使用戶輸入的數據帶入數據庫執行,利用數據庫的特殊性獲取更多的信息或者更大的權限。

舉個例子:
(1)在頁面URL后面輸入:user_id=1' and 1=1 order by 4 #
(2)加載頁面,將url的參數傳入后臺,后臺執行SQL語句為:SELECT first_name, last_name FROM users WHERE user_id = '1' and 1=1 order by 4 #'
(3)根據SQL語法可知,#號將后續的引號注釋了。order by是用來查詢列數的,當字段數超過數據庫的字段數,數據庫就會返回錯誤信息,因此,可以利用order by來猜測數據庫的字段數。因此,如果熟悉SQL語句,就可以進一步寫入更多的語句,查詢數據庫,導致隱私數據泄漏。

常見利用數據庫注入目的:
(1)查詢數據
(2)讀寫文件
(3)執行命令


【 防止SQL注入】

數據庫并沒有什么好的辦法直接過濾SQL注入。只負責執行SQL語句,根據SQL語句來返回相關數據。
因此:防御SQL注入,還是得從代碼入手。
根據SQL注入的分類,防御主要分為兩種:數據類型判斷特殊字符轉義

  • 嚴格的數據類型

例如:請求ID為1的新聞。

URL://www.wecbug.org.news.jsp?id=1int id = Integer.parseInt(request.getParameter('id'));// 接收ID參數,并轉換為int類型News news = newsDao.findNewsById(id);

攻擊者想在此代碼中注入是不可能的,因為程序在接收ID參數后,做了一次數據類型的轉換,如果ID參數接收的數據是字符串,那么在轉換時將會發生Exception。由此可見,只需要在程序中嚴格判斷數據類型即可,數據類型處理正確后,足以抵擋數字型注入。

  • 特殊字符轉義
    在數據庫查詢字符串時,任何字符都必須加上單引號,既然知道攻擊者在字符型注入中必然會出現單引號等特殊字符,那么將這些特殊字符轉義即可防御字符型SQL注入。

例如:用戶搜索數據://www.xxser.con/news?tag=電影

SQL注入語句如下:

select title,content from news where tag='%電影' and 1=2 union select username, password from users -- %'

防止SQL注入應該在程序中判斷字符串是否存在敏感字符,如果存在,則根據相應的數據庫進行轉義。如:MySQL使用“\”轉義,如果以上代碼使用數據庫為MySQL,那么轉義后的SQL語句如下:

select title,content from news where tag='%電影\' and 1=2 union select username, password from users -- %'

這樣轉義之后,后面的SQL語句就無法執行,一次,也就防御了SQL的注入。

  • 使用預編譯語句(StatementCallableStatementPreparedStatement

  • 框架技術

  • 存儲過程

總結:
SQL注入的危害雖然很大,但是可以完全杜絕,程序開發團隊一定要有自己的安全規范模版,因為不可能每個程序員都了解SQL注入,所以團隊有一套自己的模板之后,SQL注入會大大減少。比如,碰到SQL語句完全采用“PrepareStatement”類,且必須用參數綁定,如果這樣還存在SQL注入,那就是某個程序員沒有遵循規范,這樣就從安全轉移到代碼規范問題上,只要遵循規范,就不會有問題,這一方法無論是SQL注入,還是后面的其他漏洞,都適用。

-------------------------------
縱橫數據 美國站群服務器 香港站群服務器 歡迎聯系在線客服 艾娜QQ  482986990

在線客服
微信公眾號
免費撥打400-1886560
免費撥打0592-5580190 免費撥打 400-1886560 或 0592-5580190
返回頂部
返回頭部 返回頂部