iT邦幫忙

2021 iThome 鐵人賽

DAY 26
0
Security

讓 Hacking for Dummies 一書陪我 30 天系列 第 26

Day 26 - XSS 與防範輸入相關攻擊的方式

倒數五天!倒數五天!倒數五天!

出於書本 Chapter 14. Web sites and Applications

Cross-site scripting

跨站腳本攻擊 (Cross-site scripting,XSS) 可能是網路應用程式中,最廣為人知發生在輸入欄位的攻擊方式。攻擊者透過在沒有做驗證的網頁輸入欄位裡,注入 Javascript 或 VB script 的惡意程式碼,任何使用者在自己的電腦開啟網頁時,惡意程式碼便會被執行。

舉例來說,跨站腳本攻擊能夠顯示來自其他非法網站的登入頁面。使用者在不知情的情況下輸入登入資訊後,這些登入資訊就會被記錄在駭客的網頁伺服器上。

怎麼檢查網頁上是否存在 XSS

就在輸入的欄位裡隨面打一個 Javascript 指令即可,舉例輸入

<script>alert('XSS')</script>

如果有對話盒彈出來,就表示該站台存有此類弱點。

https://ithelp.ithome.com.tw/upload/images/20211011/20141184PzsEZPrH6q.jpg

XSS 跟前一天談到的 SQL injection ㄧ樣,書上介紹可以透過掃描工具 WebInspect 或是 acunetix 掃描,但都是要錢滴!如果說是 XSS 的話, Nessus 也有 plugin 喔!

Input filtering 的防範

網站應用程式是必須要過濾所有的輸入,確保每個輸入的值都是合乎預期的,當使用者輸入預期外的值,必須將網頁返回至前一頁。

開發時遵守一些安全性相關的 best practice 也能消除相關的弱點,像是

  • 永遠不要在網頁上顯示使用者不需要的靜態數值 (static values) ,需要的資料必須透過伺服器端存取。
  • 濾除所有輸入欄位中的 <script>
  • 可能的話,關閉網頁伺服器與資料庫伺服器。

明天來看看網站常見的互動行為 - 登入


上一篇
Day 25 - Code Injection 與 SQL Injection
下一篇
Day 27 - 不安全的登入機制
系列文
讓 Hacking for Dummies 一書陪我 30 天30

尚未有邦友留言

立即登入留言