越來越多的人能夠接觸到互聯網。這促使許多組織開發基于web的應用程序,用戶可以在線使用這些應用程序與組織進行交互。為web應用程序編寫的糟糕代碼可能被利用來獲得對敏感數據和web服務器的未經授權的訪問。
在本文中,我將向你介紹web應用程序黑客技術,以及你可以采取的防止此類攻擊的應對措施。
什么是web應用程序?什么是網絡威脅?
web應用程序(又名網站)是基于客戶機--服務器模型的應用程序。服務器提供數據庫訪問和業務邏輯。它托管在web服務器上。客戶機應用程序在客戶機web瀏覽器上運行。Web應用程序通常是用JAVA、c#和VB等語言編寫的。web應用中使用的數據庫引擎包括MySQL、MS SQL Server、PostgreSQL、SQLite等。
大多數web應用程序部署在可以通過Internet訪問的公共服務器上。由于易于訪問,這使得它們容易受到攻擊。以下是常見的web應用程序的威脅。
- SQL注入——這種威脅的目標可能是繞過登錄算法,破壞數據,等等。
- 拒絕服務攻擊——這種威脅的目標可能是拒絕合法用戶對資源的訪問。
- 跨站點腳本XSS——這種威脅的目標可能是注入可以在客戶端瀏覽器上執行的代碼。
- Cookie/Session盜取——這種威脅的目標是攻擊者修改Cookie/Session數據,以獲得未經授權的訪問。
- 表單篡改——這種威脅的目標是修改電子商務應用程序中的價格等表單數據,以便攻擊者能夠以較低的價格獲得商品。
- 代碼注入——這種威脅的目標是注入可以在服務器上執行的代碼,如php、Python等。代碼可以安裝后門,透露敏感信息等。
- 破壞——這種威脅的目標是修改網站上顯示的頁面,并將所有頁面請求重定向到包含攻擊者消息的單個頁面。

如何保護你的網站免受黑客攻擊?
組織可以采用以下策略來保護自己不受web服務器攻擊。
- SQL注入——在將用戶參數提交到數據庫進行處理之前對其進行清理和驗證,可以幫助降低通過SQL注入受到攻擊的幾率。數據庫引擎,如MS SQL Server, MySQL等,支持參數和預備語句。它們比傳統的SQL語句安全得多
- 拒絕服務攻擊——如果攻擊是簡單的DoS,則可以使用防火墻來攔截來自可疑IP地址的流量。適當的網絡配置和入侵檢測系統也有助于減少DoS攻擊成功的機會。
- 跨站點腳本XSS——驗證和清理headers、通過URL傳遞的參數、表單參數和隱藏值可以幫助減少XSS攻擊。
- Cookie/Session中毒——這可以通過加密Cookie的內容、設置過期時間、將Cookie與用于創建它們的客戶端IP地址關聯來防止。
- 表單篡改——通過在處理之前驗證和驗證用戶輸入,可以防止這種情況。
- 代碼注入——這可以通過將所有參數視為數據而不是可執行代碼來防止。可以使用消毒和驗證來實現這一點。
- 破壞——一個好的web應用程序開發安全策略應該確保它密封了訪問web服務器的常用漏洞。這可以是操作系統、web服務器軟件的適當配置,以及開發web應用程序時的最佳安全實踐。