【SQL Server】--SQL隱碼攻擊
Sql Inject概念:
百度解釋:通過SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字串,最終達到欺騙伺服器質性惡意的SQL命令。
SQL隱碼攻擊指的是通過構件特殊的輸入作為引數傳入Web應用程式,而這些輸入大都是SQL語法裡的一些組合,通過執行SQL語句進而執行攻擊者所要的操作,主要原因是程式沒有細緻地過濾使用者輸入的資料,致使非法資料侵入系統。
SQL隱碼攻擊分為兩種:平臺注入、程式碼注入。
例項:
牛腩新聞釋出系統 資料庫 新聞類別表
查詢Id=1的新聞類別
嵌入惡意表示式1=1使where失去作用,恆真後,查詢出來的資料是所有的新聞類別名稱。
教訓:
1. 永遠不要信任使用者的輸入(正規表示式驗證)。
2. 永遠不要使用動態拼裝sql,可以使用引數化sql或者直接使用儲存過程進行資料查詢存取(我們常用的)。
3. 永遠不要使用管理員許可權的資料庫連線,為每個應用使用單獨的許可權有限的資料庫連線。
4. 不要把機密資訊直接存放,加密或者hash掉密碼和敏感的資訊。
5. 應用的異常資訊應該給出儘可能少的提示,最好使用自定義的錯誤資訊對元素錯誤資訊進行包裝。
6. SQL隱碼攻擊採取輔助軟體或網站平臺來檢測。
SQL隱碼攻擊程式碼(Java)——2015年12月12日
/**
* 使用者登入 演示sql注入
* 使用者名稱稱:sdfsdfdsf
* 使用者密碼 'or '1'='1
* SQL語句:select * from t_user where user_id='sdfsdfdsf'and password=''or '1'='1'
* @param userId 使用者id
* @param password 使用者密碼 'or '1'='1
* @return
*/
public boolean login(String userId,String password){
String sql="select * from t_user where user_id='" +userId +"'and password='"+password +"'";
System.out.println(sql);
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
boolean success=false;
try {
conn=DbUtil.getConnection();
pstmt=conn.prepareStatement(sql);
rs=pstmt.executeQuery();
if(rs.next()){
success=true;
System.out.println("使用者和密碼正確!");
}
} catch (Exception e) {
e.printStackTrace();
}finally{
DbUtil.close(rs);
DbUtil.close(pstmt);
DbUtil.close(conn);
}
return success;
}
相關文章
- SQL隱碼攻擊SQL
- SQL隱碼攻擊(pikachu)SQL
- SQL隱碼攻擊方法SQL
- MYSQL SQL隱碼攻擊MySql
- SQL隱碼攻擊原理是什麼?如何防範SQL隱碼攻擊?SQL
- DVWA-SQL Injection(SQL隱碼攻擊)SQL
- SQL隱碼攻擊導圖SQL
- SQL隱碼攻擊語句SQL
- pikachu-SQL隱碼攻擊SQL
- SQL隱碼攻擊總結SQL
- XSS與SQL隱碼攻擊SQL
- 【網路安全】什麼是SQL隱碼攻擊漏洞?SQL隱碼攻擊的特點!SQL
- SQL隱碼攻擊關聯分析SQL
- Mybatis如何防止SQL隱碼攻擊MyBatisSQL
- Nacos Derby SQL隱碼攻擊漏洞SQL
- MSSQL SQL隱碼攻擊 總結SQL
- Oracle SQL隱碼攻擊 總結OracleSQL
- SQL隱碼攻擊-堆疊注入SQL
- SQL隱碼攻擊基礎原理SQL
- 【網路安全入門】SQL隱碼攻擊是什麼?SQL隱碼攻擊危害有哪些?SQL
- 攻擊JavaWeb應用[4]-SQL隱碼攻擊[2]JavaWebSQL
- 攻擊JavaWeb應用[3]-SQL隱碼攻擊[1]JavaWebSQL
- SQL隱碼攻擊預備知識-sql基礎SQL
- 什麼是SQL隱碼攻擊(SQLi)SQL
- SQL隱碼攻擊讀寫檔案SQL
- Mura CMS processAsyncObject SQL隱碼攻擊漏洞ObjectSQL
- SQL隱碼攻擊速查表(上)SQL
- 預防SQL隱碼攻擊筆記SQL筆記
- SQL隱碼攻擊——時間盲注SQL
- SQL隱碼攻擊基礎入門SQL
- 前端如何預防SQL隱碼攻擊?前端SQL
- SQL隱碼攻擊:Sqlmap初體驗SQL
- SQL隱碼攻擊及如何解決SQL
- WEB三大攻擊之—SQL隱碼攻擊與防護WebSQL
- SQL隱碼攻擊原理——萬能密碼注入SQL密碼
- SQL隱碼攻擊原理及程式碼分析(二)SQL
- SQL隱碼攻擊原理及程式碼分析(一)SQL
- SQL隱碼攻擊 - 手工注入sqli-labsSQL
- Java審計之SQL隱碼攻擊篇JavaSQL