【sql注入】淺談JSP安全開發之SQL注入
本文轉自:i春秋社區
前言
不管是用什么語言編寫WEB應用程序,他們都或多或少有一些地方存在漏洞。如果你想知道漏洞的運行原理,和防御方案,那么請看完本篇文章。
目錄
第一節 注入攻擊原理及防御
1.1、什么是SQL注入
1.2、SQL注入演練
1.3、如何防御SQL注入
正文
第一節 注入攻擊原理及防御
1.1、什么是SQL注入
所謂SQL注入,就是通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令。
1.2、SQL注入演練
Servlet普及
1.Servlet簡介
Servlet是sun公司提供的一門用於開發動態web資源的技術。
Sun公司在其API中提供了一個servlet接口,用戶若想用發一個動態web資源(即開發一個Java程序向瀏覽器輸出數據),需要完成以下2個步驟:
1、編寫一個Java類,實現servlet接口。
2、把開發好的Java類部署到web服務器中。
按照一種約定俗成的稱呼習慣,通常我們也把實現了servlet接口的java程序,稱之為Servlet
2.Servlet的運行過程
Servlet程序是由WEB服務器調用,web服務器收到客戶端的Servlet訪問請求后:
①Web服務器首先檢查是否已經裝載並創建了該Servlet的實例對象。如果是,則直接執行第④步,否則,執行第②步。
②裝載並創建該Servlet的一個實例對象。
③調用Servlet實例對象的init()方法。
④創建一個用於封裝HTTP請求消息的HttpServletRequest對象和一個代表HTTP響應消息的HttpServletResponse對象,然后調用Servlet的service()方法並將請求和響應對象作為參數傳遞進去。
⑤WEB應用程序被停止或重新啟動之前,Servlet引擎將卸載Servlet,並在卸載之前調用Servlet的destroy()方法。
<ignore_js_op>
3.Servlet的常用方法
doPost() 方法
當一個客戶通過 HTML 表單發出一個 HTTP POST 請求時,doPost() 方法被調用。與 POST 請求相關的參數作為一個單獨的 HTTP 請求從瀏覽器發送到服務器。當需要修改服務器端的數據時,應該使用 doPost() 方法。
doGet() 方法
當一個客戶通過 HTML 表單發出一個 HTTP GET 請求或直接請求一個 URL 時,doGet() 方法被調用。與 GET 請求相關的參數添加到 URL 的后面,並與這個請求一起發送。當不會修改服務器端的數據時,應該使用 doGet() 方法。
我們來看一段JSP代碼中的【登陸驗證】
login.jsp核心代碼
想獲取更多核心代碼,請看全文》》》原文地址:http://bbs.ichunqiu.com/thread-9958-1-1.html
想獲取