網頁

2018/2/22

Java XSS攻擊的基本防範

以下是在Java Server端防範XSS(Cross-Site Scripting)跨站腳本攻擊的基本措施。

在Web App的Controller端接收頁面傳入的參數都必須做好下列防範。

  • 所有參數都必須做格式驗證,檢查是否為預期輸入的格式,例如長度是否超過限制,姓名欄位是否全是中文等。
  • 所有參數都必須做URL encode將URL的保留字取代掉。
  • 所有參數都必須做HTML encode將HTML的特殊符號取代掉。
  • 所有參數都必須做JSON encode將JSON的特殊符號取代掉。
  • 所有參數都檢查是否存在"script"字樣,如果有將其取代掉。

在看了XSS (Cross-Site Scripting) 跨站腳本攻擊簡介和實作這篇文章後,我也深信

任何在Client端的防禦都是無效的。
所以在前端頁面的輸入驗證都只是防止一般人而已,駭客仍可透過開發工具,url或特殊編碼的內容來繞過前端的防禦,因此後端的防禦是必要的。

當然以上只是基本的防護而已,還有一大串其他的攻擊方式,請參考XSS (Cross Site Scripting) Prevention Cheat Sheet


參考:

沒有留言:

張貼留言