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>
  • 可能的话,关闭网页服务器与资料库服务器。

明天来看看网站常见的互动行为 - 登入


<<:  [DAY26] 用 Azure Machine Learning SDK 来做 Pipeline

>>:  [Java Day30] 6.7. 介面

Day-30 不完美收工

历经了 30 天,我们总算到了这里啦~ 是时候下台一鞠躬了~ 非常可惜的在第 29 天因为工作完全...

[Day 02] 为什麽要用 Kubernetes?

为甚麽 「需要」 Kubernetes? 一个走完开发流程之後所产出的软件应用程序(或称系统),都会...

[Day12] CH08:积沙成塔——Array & ArrayList(中)

还记得我们前两天学的方法吗?结合昨天学的阵列,阵列也可以用在方法里传递吗? 当然可以罗!我们就先来看...

Day16-"与字串相关的函式-2"

复制字串 i.strcpy() 宣告时宣告另一空字元字串,当strcpy()执行完毕时,就会将此字...

虹语岚访仲夏夜-24(专业的小四篇)

我慢慢的告诉小路,我记得的事,包括那个R... 小路一直强调,只有我一个人参加,然後,不会有什麽NP...