1

我有几个地方可以将用户输入显示给其他用户。

一个输入框。

<p>标签之间的输入框中的值。

<a>标签之间的输入框中的值。

它几乎是用户输入显示名称的一种形式,然后您会在下一页上的两个位置上看到名称显示在两个标签之间的位置。某些用户可以返回并编辑此文本框。

如果用户输入“hello world”,下一个用户将看到一个预先填充有“hello world”的文本框,以及<a href="#">hello world</a> <p>hello world</p>

我对 JavaScript 或 JavaScript 安全性不太熟悉。这是否容易受到某种方式的攻击?如果是这样,我应该怎么做才能防止它?

4

2 回答 2

1

是的,这打开了一个可能的 XSS 漏洞。

您应该使用.innerText要填充用户内容的节点的属性。

var node = document.getElementById('foo');
node.innerText = 'whatever the user entered';
于 2013-02-28T15:20:57.947 回答
0

是的,这很容易受到 XSS 攻击,请查看https://www.owasp.org/index.php/Top_10_2010-A2

于 2013-02-28T15:18:20.323 回答