Cross-Site Scripting簡稱XSS,它指的是駭客在網頁裡插入惡意程式碼,當其他user瀏覽該網頁時,惡意網頁程式碼就會被執行。
舉例來說,假如有一個留言板,駭客故意留了一段javascript程式碼,如果這個網站沒有預防,這段程式碼就會被塞到DB裡,下次有user來瀏覽的時候,留言被query出來,而這段js就會被瀏覽器執行了。
以下透過程式碼來模擬:
正常使用的情況下,看起來就是個簡單的留言板。
但是如果我故意留一段js程式碼,然後送出。
這段留言就被塞進DB了:
然後現在我重整這頁,這段js被執行了。
這還不打緊,因為只是show出一段文字而已,但若是改成這樣呢?
這張圖片就會被塞到DB,query出來長這樣:
hack.php長這樣(這邊就簡單收到而已,因為我不想做壞事XD):
這時候就GG了,看起來是一張顯示不出來的圖片而已,其實背後已經把你的cookie資料送到駭客手中了,駭客可以把這些資料儲存起來,cookie可能有敏感資料在裡面,例如你登入的session id,他就可以偽造是你的身分存取網站,這又稱為CSRF攻擊!
下一篇將介紹如何防禦XSS攻擊。