Try   HackMD

什麼是XSS攻擊(Cross site scripting)?

定義

一種注入攻擊,利用使用者讀取網站程式造成的攻擊手法,通常是HTML/JS這類在前端瀏覽器使用者執行的程式碼。通常有兩種方法

  • reflection attack(反射攻擊):利用網站提供的服務插入攻擊程式碼(e.g. 可自定義url的參數),再將已經加入攻擊程式的連結發送給使用者
  • Persistent Attack(儲存性攻擊):攻擊者利用留言板類型的功能,將攻擊程式注入在內,令瀏覽的使用者都會被攻擊

如何防範

  • 使用 PHP 提供 htmlspecialchars 這個function將使用者輸入文字轉換成純文字
  • 使用套件提供工具而非native php輸出,在畫面渲染時就防止發生 e.g. {}
  • 使用User case 定義能通過的文字 e.g. 國家名稱
  • 使用字串替代特殊文字 e.g. \()

參考連結