Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 存储HTML时避免XSS攻击_Javascript_Html_Xss - Fatal编程技术网

Javascript 存储HTML时避免XSS攻击

Javascript 存储HTML时避免XSS攻击,javascript,html,xss,Javascript,Html,Xss,我的站点存储用户生成的HTML。当然,这些数据会呈现在网页上。呈现HTML和避免XSS攻击的最佳实践是什么?剥离和标记是否足够?这会覆盖所有浏览器吗?我听说旧浏览器通过奇怪的编码呈现HTML。。。我该怎么办 我想要一个与任何语言或技术无关的一般答案。至少您必须转换此符号。 &->&; < -> > -> “ -> " “->'; /->/; 您可以使用类似的库,尤其是它们的库来防止XSS 一般来说,我认为使用白名单比过滤黑名单标签更好/更安全。此外,首先应该

我的站点存储用户生成的HTML。当然,这些数据会呈现在网页上。呈现HTML和避免XSS攻击的最佳实践是什么?剥离
标记是否足够?这会覆盖所有浏览器吗?我听说旧浏览器通过奇怪的编码呈现HTML。。。我该怎么办


我想要一个与任何语言或技术无关的一般答案。

至少您必须转换此符号。
&->&;
< ->
> ->
“ -> "
“->';
/->/;

您可以使用类似的库,尤其是它们的库来防止XSS


一般来说,我认为使用白名单比过滤黑名单标签更好/更安全。此外,首先应该避免使用HTML。相反,应该使用一些简单的标记,如。我可以向你保证,没有办法安全地执行你的要求。狡猾的黑客总是能够ploit是一个允许用户使用任意html的系统,即使通过剥离某些标记来清理。这正是工具喜欢和存在的原因。为什么看,即使StackOverflow也在使用类似的工具


你正在考虑的道路上布满了10000个被利用的网站。

当你的用户在你的页面上设置HTML时,你就迷路了,有很多可能性,比如onmouseover“myEvilJS”"orNo,我需要允许通用HTML标记允许它们呈现它们想要的任何内容,除了支持XSS的标记。我认为您弄错了,这将转义并显示HTML源代码。我知道有LIB可以做到这一点,但我想要一个关于应该避免哪些标记以及为什么这样做的通用答案,因为我认为这可以为将来的用户提供一个很好的参考了解XSS攻击。如果引入了一个支持XSS的新标签怎么办?如果有一个特定于单个浏览器的标签,您可能会忽略它怎么办?如果有人这样做怎么办?
?基本上每个标签都是危险的,除非您使用复杂的过滤器白名单。好吧,如果您问哪些标签应该被列入黑名单,我会说“所有的,但是…”,什么意思是白名单。然而,如果这是一个选项的话,首先应该避免使用HTML.从你的链接中我找到了这个:这正是我要找的。Thanks@Luca:读得不错,但正如我所说的,我会使用一些轻量级标记而不是HTML。这比防止XSS攻击更有优势。例如,当你想将给定文本呈现为其他输出格式,例如PDF。不过,很高兴我能提供帮助。