所以我一直在尝试让用户能够以 HTML 颜色代码格式选择他们的背景颜色。
然后我将自定义让他们的页面使用他们指定的背景颜色。但是我遇到了一个小问题。我不能 HTML 特殊字符他们选择的颜色代码格式,因为 HTML 不会读取它。但我不希望他们因此而对我的网站进行 XSS 攻击。我应该怎么做才能解决这个问题?我应该如何解决这个问题?
如果您的用户可以选择十六进制代码,您必须检查您返回的输入是否是有效的十六进制值。
因此,您必须检查它的长度是否为 6 个字符,以及所有字符是否都是有效的十六进制数字 (0-f)。您可以使用ctype_xdigit来执行此操作。所有其他输入值都必须被拒绝,然后您可以将默认的十六进制值作为背景颜色传递给您的着色函数。
如果您可以验证输入数据,我不明白为什么需要 html 特殊字符。
编辑:是的,您可能容易受到 6 个字符的 XSS 攻击。长度在这里并不重要。