攻擊方式:javascript
參數操縱java
這裏包括了SQL注入、XPath注入、cgi命令執行,還有XXS和會話劫持等。前三個的攻擊主要是在服務端觸發的,後兩者的攻擊則是側重於客戶端。數據庫
SQL注入分析:提交含有SQL操做語句的信息給後端,後端若是沒有作好過濾就執行該語句,攻擊者天然能夠隨意操縱該站點的數據庫。後端
XPath注入:跨域
cgi命令執行:安全
XSS:cross-site scripting跨域腳本攻擊服務器
對於XSS的預防天然也是對提交數據的過濾,另外還有一點——謹慎返回用戶提交的內容!cookie
會話劫持: 能夠走SSH協議、加強網絡安全系統健壯性,也可使用無序的UUID來替代通信中的序列號碼(而非逐步遞增)。網絡
其餘攻擊:session
CSRF(cross-site request forgery):跨站請求僞造,與XSS很是類似,但XSS是利用用戶對當前網站的信任來發起攻擊,而CSRF是利用網站對用戶的信任來發起攻擊。
CSRF攻擊,咱們所能作的能夠有:
1. 檢查報頭中的Referer參數確保請求發自正確的網站(但XHR請求可調用setRequestHeader方法來修改Referer報頭);
2. 對於任何重要的請求都須要從新驗證用戶的身份;
3. 建立一個惟一的令牌(Token),將其存在服務端的session中及客戶端的cookie中,對任何請求,都檢查兩者是否一致。
拒絕服務(DoS)指的是向網站發起洪水同樣的請求(Traffic Floor),致使服務器超負荷並關閉,處理方法常規是採用QoS(Quality of Service)的軟硬件解決方案。
綜上所述,咱們能夠這樣審視咱們的WEB站點:
1. 永遠不要相信客戶端傳來的任何信息,對這些信息都應先進行編碼或過濾處理;
2. 謹慎返回用戶輸入的信息;
3. 使用黑名單和白名單處理(即「不容許哪些敏感信息」或「只容許哪些信息」,白名單的效果更好但侷限性高);
4. 檢查、驗證請求來源,對每個重要的操做都進行從新驗證;
5. 使用SSL防止第三方監聽通訊(但沒法阻止XSS、CSRF、SQL注入攻擊);
6. 不要將重要文件、備份文件存放在公衆可訪問到的地方;
7. 會話ID無序化;
8. 對用戶上傳的文件進行驗證(不僅僅是格式驗證,比方一張gif圖片還應將其轉爲二進制並驗證其每幀顏色值<無符號8位>和寬高值<無符號16位>);
9. WSDL文檔應當要求用戶註冊後才能獲取;