首页 > 解决方案 > 这是什么类型的 XSS 以及如何防止它

问题描述

下面是 example.com 的代码,我作为 index.html 保存到我的计算机桌面:

<channel> <title>Comments on: Voor uw organisatie</title> <atom:link href="https://example.com/feed/" rel="self" type="application/rss+xml" /> <link>https://example.com</link> <description>PIM: Wie weet wat van mij?</description> <lastBuildDate>Mon, 17 Sep 2018 13:22:52 +0000</lastBuildDate> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>https://wordpress.org/?v=4.9.3</generator> </channel> 

我在文本编辑器中打开了该文件并更改了

<generator>https://wordpress.org/?v=4.9.3</generator> 

<generator>"><img src="x" onerror="alert(document.cookie)"></generator> 

当我在 Firefox 中打开修改后的 HTML 文件时,我会看到一个带有 cookie 的警告框。我知道这是 XSS,因为我在浏览器中收到了 XSS 警报。

我的问题是为什么会这样?因为我没有在参数中注入这段代码。那么开发人员如何解决这个问题或清理这段代码呢?

这有什么影响吗?

标签: javascriptweb-applicationsxss

解决方案


给定一个由 Alice 运行并由 Bob 访问的网站,当 Mallory(攻击者)导致 JavaScript 在 Bob 网站上的 Alice 的浏览器中运行时,就会发生 XSS 攻击。

Alice 在她的计算机上编辑一个 HTML 文档(甚至是从另一个网站复制的),以便它运行 JavaScript,然后在她的浏览器中加载该 HTML 文档不会执行 XSS 攻击。她只是在她完全控制的系统上运行 JavaScript。


推荐阅读