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