XSS, Cross-site scripting.
在於未充分檢查使用者輸入的訊息,導致使用者有機會去使用scripting language在server執行程式碼,程式撰寫者必須去檢查使用者的資料格式來避免這個問題。XSS通常會發生在
1. 使用者的http request未檢查2. 在web application動態產生網頁時,可能會包含未被檢查的內容
3. 在產生網頁時,並沒有方式讓網頁內容不去執行scripting
4. user在瀏覽 gen出來的網頁時成了內含惡意script的犧牲者
Type 1: Reflected XSS (or Non-Persistent)
就是在http request裡面加入惡意的執行指令,然後在web server回應到使用者的browser執行。
Type 2: Stored XSS (or Persistent)
如果Web Server意外把含有惡意的執行指令碼存在server的storage中,然後在使用者使用服務時,藉機在執行指令以獲得一些敏感的隱私資料。
Type 0: DOM-Based XSS
DOM-Based XSS 就是指網頁上的 JavaScript 在執行過程中,沒有詳細檢查資料使得操作 DOM 的過程代入了惡意指令。
應對之道:
1. 檢查任何使用者或是Web application所承接近來的input,並檢查裡面有沒有埋藏指令碼。
2. 記得輸出到使用者的response需要經過OWASP的Encoder處理,來避免裡面有駭客埋藏的指令碼。
針對Java的處理Encoder, OWASP的資源提供如下
http://owasp.github.io/owasp-java-encoder/encoder/index.html
2. 記得輸出到使用者的response需要經過OWASP的Encoder處理,來避免裡面有駭客埋藏的指令碼。
針對Java的處理Encoder, OWASP的資源提供如下
http://owasp.github.io/owasp-java-encoder/encoder/index.html
留言