⑴ 如何安全檢測Java Web應用網站漏洞
1、sql注入漏洞
從SQL注入漏洞說起吧,在web漏洞里,SQL注入是最容易被利用而又最具有危害性的。怎麼快速的找到呢?先分析流程,就拿用戶查看文章這個流程為例:用戶訪問一個action,告訴它用戶想看ID為7的文章,這個action就會繼續完成前面所說的流程
2、暴露程序信息漏洞
這個漏洞是怎麼來的呢?我們需要從異常說起。有經驗的入侵者,可以從JSP程序的異常中獲取很多信息,比如程序的部分架構、程序的物理路徑、SQL注入爆出來的信息等,這個漏洞很容易防禦,卻很難快速定位漏洞文件。出現這樣漏洞的時候,通常是我們在寫代碼的時候,少了一些可能性的考慮而導致的。這樣的問題都是經驗造成的,而尋找漏洞也要通過經驗加運氣
3、AJAX暴露出來的漏洞
前面講SQL注入的時候說過的例子就是一個典型的情況,因為大多數網站不是在開發時就擁有Ajax技術的,都是後來看大家都用了,趕時髦加上。但是在加上的同時沒有意識到,在web上增加一個文件,就等於擴展了一點攻擊面。
4、業務邏輯漏洞
這個詞看起來挺抽象的,他和「暴露程序信息漏洞」有很多共同點,看名字就知道,應該是存在於業務邏輯層(service層)的漏洞。這樣的漏洞都和程序的運行邏輯有關。
5、XSS漏洞
這個漏洞也影響深遠,想要發現這樣的漏洞,除了在頁面上進行測試外,還要從流程上入手。用戶輸入有害信息後,信息保存到資料庫,從資料庫中讀出來丟給用戶時產生漏洞。也就是說我們有兩個過程可以攔截,就是保存到資料庫時,和從資料庫讀出來後交給用戶時。最快的方法是直接打開資料庫查看數據,如果數據沒有經過編碼直接放進了資料庫,那麼可能性就有了一半。剩下的一半更簡單,在action層搜索轉碼常用的字元,如果沒有,就很容易發現漏洞。即使有,也不用著急,在action層里慢慢找,很可能還有漏網之魚。
6、頁面層的邏輯漏洞
此類漏洞涵蓋面很大,包括「暴露不該暴露的數據」、「許可權控制的不精確」、「方便客戶的同時存在安全隱患」等等。這類漏洞就只能靠著自己的經驗,使用系統的每一個細小功能來尋找。
⑵ java web應用如何實現單點登錄
單點登錄(Single Sign On),簡稱為 SSO,是目前比較流行的企業業務整合的解決方案之一。SSO的定義是在多個應用系統中,用戶只需要登錄一次就可以訪問所有相互信任的應用系統。實現單點登錄需要兩個部分的合作:統一的身份認證服務和修改Web應用,使得每個應用都通過這個統一的認證服務來進行身份效驗。
⑶ 3大Web安全漏洞防禦詳解:XSS、CSRF、以及SQL注入解決方案
隨著互聯網的普及,網路安全變得越來越重要。Java等程序員需要掌握基本的web安全知識,防患於未然,下面列舉一些常見的安全漏洞,以及對應的防禦解決方案。
1.前端安全
2.後端安全
1.XSS簡介
跨站腳本(cross site script)簡稱為XSS,是一種經常出現在web應用中的計算機安全漏洞,也是web中最主流的攻擊方式。
XSS是指惡意攻擊者利用網站沒有對用戶提交數據進行轉義處理或者過濾不足的缺點,進而添加一些代碼,嵌入到web頁面中去,使別的用戶訪問都會執行相應的嵌入代碼。
2.XSS攻擊的危害
1、盜取用戶資料,比如:登錄帳號、網銀帳號等
2、利用用戶身份,讀取、篡改、添加、刪除企業敏感數據等
3、盜竊企業重要的具有商業價值的資料
4、非法轉賬
5、強制發送電子郵件
6、網站掛馬
7、控制受害者機器向其它網站發起攻擊
3.防止XSS解決方案
XSS的根源主要是沒完全過濾客戶端提交的數據 ,所以重點是要過濾用戶提交的信息。
1.CSRF簡介
CSRF(Cross-site request forgery)跨站請求偽造,也被稱為「One Click Attack」或者Session Riding,通常縮寫為CSRF或者XSRF,是一種對網站的惡意利用。
XSS利用站點內的信任用戶,而CSRF則通過偽裝來自受信任用戶的請求來利用受信任的網站。與XSS攻擊相比,CSRF更具危險性。
2.CSRF攻擊的危害
主要的危害來自於,攻擊者盜用了用戶身份,發送惡意請求。比如:模擬用戶的行為發送郵件,發消息,以及支付、轉賬等財產安全。
3.防止CSRF的解決方案
1.簡介
SQL注入是比較常見的網路攻擊方式之一,主要是通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字元串,實現無帳號登錄,甚至篡改資料庫。
2.SQL注入的危害
3.防止SQL注入的方式
通常情況下,SQL注入的位置包括:
(1)表單提交,主要是POST請求,也包括GET請求;
(2)URL參數提交,主要為GET請求參數;
(3)Cookie參數提交;
(4)HTTP請求頭部的一些可修改的值,比如Referer、User_Agent等;
4.簡要舉例
舉一個簡單的例子,select * from user where id=100 ,表示查詢id為100的用戶信息,如果id=100變為 id=100 or 2=2,sql將變為:select * from user where id=100 or 2=2,將把所有user表的信息查詢出來,這就是典型的sql注入。
5.防止SQL注入的解決方案
1)對用戶的輸入進行校驗,使用正則表達式過濾傳入的參數
2)使用參數化語句,不要拼接sql,也可以使用安全的存儲過程
3)不要使用管理員許可權的資料庫連接,為每個應用使用許可權有限的資料庫連接
4)檢查數據存儲類型
5)重要的信息一定要加密
總之就是既要做好過濾與編碼並使用參數化語句,也要把重要的信息進行加密處理,這樣sql注入漏洞才能更好的解決。
以上就是Web安全介紹,更多Redis系列、Spring Cloud、Dubbo等微服務、MySQL資料庫分庫分表等架構設計,具體請參考:
回復關鍵詞 【高並發】即可獲取!