-1

所以我一直在尝试让用户能够以 HTML 颜色代码格式选择他们的背景颜色

然后我将自定义让他们的页面使用他们指定的背景颜色。但是我遇到了一个小问题。我不能 HTML 特殊字符他们选择的颜色代码格式,因为 HTML 不会读取它。但我不希望他们因此而对我的网站进行 XSS 攻击。我应该怎么做才能解决这个问题?我应该如何解决这个问题?

4

1 回答 1

3

如果您的用户可以选择十六进制代码,您必须检查您返回的输入是否是有效的十六进制值。

因此,您必须检查它的长度是否为 6 个字符,以及所有字符是否都是有效的十六进制数字 (0-f)。您可以使用ctype_xdigit来执行此操作。所有其他输入值都必须被拒绝,然后您可以将默认的十六进制值作为背景颜色传递给您的着色函数。

如果您可以验证输入数据,我不明白为什么需要 html 特殊字符。

编辑:是的,您可能容易受到 6 个字符的 XSS 攻击。长度在这里并不重要。

于 2013-02-13T11:41:58.027 回答