回覆列表
-
1 # 夕陽雨晴
-
2 # Cici7126
1、SQL注入
注入是一個安全漏洞,允許攻擊者透過操縱使用者提供的資料來更改後端SQL語句。 當用戶輸入作為命令或查詢的一部分被髮送到直譯器並且欺騙直譯器執行非預期的命令並且允許訪問未授權的資料時,發生注入。
2、跨站指令碼攻擊 (XSS)
XSS漏洞針對嵌入在客戶端(即使用者瀏覽器而不是伺服器端)的頁面中嵌入的指令碼。當應用程式獲取不受信任的資料並將其傳送到Web瀏覽器而未經適當驗證時,可能會出現這些缺陷。
3、跨站點請求偽造
CSRF攻擊是指惡意網站,電子郵件或程式導致使用者的瀏覽器在使用者當前已對其進行身份驗證的受信任站點上執行不需要的操作時發生的攻擊。
4、無法限制URL訪問
5、不安全的加密儲存
不安全的加密儲存是一種常見的漏洞,在敏感資料未安全儲存時存在。 使用者憑據,配置檔案資訊,健康詳細資訊,信用卡資訊等屬於網站上的敏感資料資訊。
比較常見的 web 漏洞有:SQL注入、XSS跨站站點指令碼、CSRF跨站請求偽造等。由於所在團隊或者公司均有嚴格隔離的內網環境和基礎運維團隊,對弱口令漏洞、敏感資訊洩露漏洞等很少涉及。
先簡單的聊一聊 SQL 注入,這個基本上是最常見的 web 漏洞了。SQL注入攻擊(SQL Injection),簡稱注入攻擊、SQL注入,被廣泛用於非法獲取網站控制權,是發生在應用程式的資料庫層上的安全漏洞。在設計程式,忽略了對輸入字串中夾帶的SQL指令的檢查,被資料庫誤認為是正常的SQL指令而執行,從而使資料庫受到攻擊,可能導致資料被竊取、更改、刪除,以及進一步導致網站被嵌入惡意程式碼、被植入後門程式等危害。比如執行下述 SQL 時
String sql = "select * from user where username = "" +uname "" and password = "" + pwd + """;
# 輸入使用者名稱為: tom" or "1=1 , 密碼不輸入或者隨便輸入, SQL如下:
select * from user from username = "tom" or "1=1" and password = "你輸入的密碼"
有了or 自然只要username = "tom" 成立, 後面的也不會起作用,這個sql基本上是很常見的比較典型的 SQL 注入問題,在直接使用 JDBC進行 SQL 拼接操作時,很容易引發這種情況。通常情況下,SQL注入的位置包括:
(1)表單提交,主要是POST請求,也包括GET請求;
(2)URL引數提交,主要為GET請求引數;
(3)Cookie引數提交。
將JDBC程式碼中的Statement 換成 PreparedStatement ,使用預編譯機制進行 SQL 注入預防,最普遍的是選用 Mybatis 或 Hibernate 等持久化框架,避免 JDBC 的直接使用,並在 Mybatis 的 SQL 中使用 "$" 符號替換"#",使預編譯機制起作用。
接著我們聊聊XSS跨站站點指令碼,跨站指令碼攻擊(Cross-site scripting,通常簡稱為XSS)發生在客戶端,可被用於進行竊取隱私、釣魚欺騙、竊取密碼、傳播惡意程式碼等攻擊。XSS攻擊使用到的技術主要為HTML和Javascript,也包括VBScript和ActionScript等。XSS攻擊對WEB伺服器雖無直接危害,但是它藉助網站進行傳播,使網站的使用使用者受到攻擊,導致網站使用者帳號被竊取,從而對網站也產生了較嚴重的危害。對於這個我是有親身體會的,我的應用是基於Java + Velocity 實現的請求轉發應用,比如透過 http 請求喚起 RN 、Android 或 IOS 原生,透過 http 請求路由定向到其他 http連結等功能的一個跳轉中介軟體應用,出現的問題是該頁面連結被請求偽造之後透過微信分享,給非法使用者的頁面造成引流的效果,而其中的漏洞是某一個引數服務端未經過濾和轉義直接在頁面輸出,導致非法使用者的指令碼執行,從而引起該攻擊的發生,在覆盤漏洞時,我的應用對 javascript 和 html 的關鍵詞做了過濾處理的,但唯一漏掉了 某個關鍵詞,從而導致該漏洞被利用,在大年初一遠端花費了近3個小時,才完成解決這一漏洞。
順便提一下,還有一種漏洞在運營維護過程中遇到過,在登入註冊模組,由於當時剛參加工作不久,欠缺研發經驗,在註冊環節未使用驗證碼,導致大量的註冊機註冊,給非法使用者牟利帶來方便,在簡訊驗證階段,為處理非法驗證和重複發生的問題,導致一些運營商手機號,被非法使用者觸發發生簡訊驗證碼,給使用者造成困擾,引起使用者向運營商投訴,對公司聲譽造成一定影響。這個事情也是自己親身經歷,面向C端使用者的研發,要多考慮安全方面的問題,既要讓使用者用起來方便,又需要避免安全問題,並且一旦發現安全問題,要具備及時止損的措施的應對預案。