日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

软件安全实验三

發布時間:2023/12/29 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 软件安全实验三 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

實驗三防止SQL注入

1.實驗目的

學習關于防止SQL的知識,進行SQL注入實驗,通過實驗體會到SQL注入的危害,學會解決防范SQL注入實驗的方法

2.實驗環境

Windows10,eclipse,火狐,MySQL

3.實驗原理

SQL注入是比較常見的網絡攻擊方式之一,它不是利用操作系統的BUG來實現攻擊,而是針對程序員編程時的疏忽,通過SQL語句,實現無帳號登錄,甚至篡改數據庫。

3.1思路:

(1)尋找到SQL注入的位置

(2)判斷服務器類型和后臺數據庫類型

(3)針對不通的服務器和數據庫特點進行SQL注入攻擊

3.2實驗實例

(1)設計一個登錄界面,要求輸入用戶名和密碼

(2)可以這樣輸入實現免帳號登錄

圖 1登錄界面

3)點登陸,如若沒有做特殊處理,那么這個非法用戶就很得意的登陸進去了

圖 2正常登錄

圖 3失敗登錄

圖 4注入成功

后臺認證程序中會有如下的SQL語句:

String sql = "select * from user_table where username=

’ “+userName+” ’ and password=’ “+password+” '";

當輸入了上面的用戶名和密碼,上面的SQL語句變成:

SELECT * FROM user_table WHERE username=

‘’or 1 = 1 – and password=’’

(5)分析SQL語句:

條件后面username=”or 1=1 用戶名等于 ” 或1=1 那么這個條件一定會成功;然后后面加兩個-,它將后面的語句注釋,讓他們不起作用,這樣語句永遠都能正確執行,用戶輕易騙過系統,獲取合法身份。

(6)防止方法

使用Java包里的filter功能.它使用戶可以改變一個 request和修改一個response. Filter 不是一個servlet,它不能產生一個response,它能夠在一個request到達servlet之前預處理request,也可以在離開 servlet時處理response。所以用戶發出的任何request都必然經過filter處理,我們就在filter處理用戶request包含的敏感關鍵字,然后replace掉或是讓頁面轉到錯誤頁來提示用戶,這樣就可以很好的防sql注入了

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-mMJdfVr6-1649239983883)(https://raw.githubusercontent.com/lmy12367/img/main/imgwps6E15.tmp.jpg)]

圖 5filter防止代碼

圖 6成功防注入

4.實驗心得

通過本次實驗體驗了一下SQL的防注入實驗方法,也在實驗過程了解了防止SQL的很多方法遠不止通過Java的包防止SQL防注入;看了很多教程等寒假有時間再去試試其他的SQL防注入實驗;目前的主流前端框架vue和后端ssm框架都有更加方便快捷的方法,在我實驗過程中了解到了通過vue的axios去組織但是我前端界面沒有用vue去重構所以沒有通過這種方法,我選擇使用調用Java的包去進行過濾操作。

5.代碼

public class LoginFilter implements Filter{public void destroy() {}public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,FilterChain filterChain) throws IOException, ServletException {HttpServletRequest request = (HttpServletRequest)servletRequest;HttpServletResponse response = (HttpServletResponse)servletResponse;HttpSession session = request.getSession();Object object = session.getAttribute("currentUser");String path = request.getServletPath();if(object == null&&path.indexOf("login")<0&&path.indexOf("bootstrap")<0&&path.indexOf("images")<0) {response.sendRedirect("login.jsp");}else {filterChain.doFilter(servletRequest, servletResponse);}}public void init(FilterConfig arg0) throws ServletException {}}

t, servletResponse);
}
}

public void init(FilterConfig arg0) throws ServletException {}

}

總結

以上是生活随笔為你收集整理的软件安全实验三的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。