教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

什么是SQL 注入?什么原理?如何防范?

更新時間:2021年04月12日14時54分 來源:傳智教育 瀏覽次數:

所謂SQL注人就是把SQL命令人為地輸人URL、表格域或者其他動態(tài)生成的SQL詢語句的輸入參數中,最終達到欺騙服務器執(zhí)行惡意的SQL命令。

1618210051221_SQL.png


假設某個網站通過網頁獲取用戶輸人的數據,并將其插人數據庫。正常情況下的URL地址如下。

http://localhost/id=222

此時,用戶輸人的id數據222會被插人數據庫執(zhí)行下列SQL語句:

select * from users where id =222

但是,如果我們不對用戶輸人數據進行過濾處理,那么可能發(fā)生SQL注人。例如,用戶可能輸入下列URL。

http:/ /localhost/id=''or 1=1

此時用戶輸人的數據插人到數據庫后執(zhí)行的SQL語句如下:

select * from users where id =222

通過比較兩個SQL語句,發(fā)現這兩條SQL查詢語句意義完全不同,正常情況下,SQL語句可以查詢出指定id的用戶信息,但是SQL注人后查詢的結果是所有用戶信息。

SQL注人是風險非常高的安全漏洞,我們可以在應用程序中對用戶輸人的數據進行合法性檢測,包括用戶輸入數據的類型和長度,同時,對SQL語句中的特殊字符(如單引號、雙引號、分號等)進行過濾處理。

值得一提的是,由于SQL注入攻擊的Web應用程序處于應用層,因此大多防火墻不會講行攔截。

除了完善應用代碼外,還可以在數據庫服務器端進行防御,對數據庫服務器進行權限設置,降低Web程序連接數據庫的權限,撤銷不必要的公共許可,使用強大的加密技術保護敏感數據,并對被讀取走的敏感數據進行審查跟蹤等。


原文地址:SQL 注入是什么意思?http://test.itheima.com/areanew/schoolzixun/test/20210412/144808.html



猜你喜歡:

常見的安全測試工具有哪些?

10款移動app安全測試工具推薦

6款自動化應用安全測試工具推薦

傳智教育軟件測試工程師培訓課程

0 分享到:
和我們在線交談!