1
我通过我的初始状态像我没有做任何事情,以防止XSS以下React服务器端渲染 - window.initialState - 如何防止XSS?
window.__INITIAL_STATE__= ${JSON.stringify(initialState)}
反应。例如,如果其中一个用户提交的内容具有下面的字符串。 "<script>***</script> "
这不幸中断了html源代码中的脚本标记。它返回一个错误,指定ILLEGAL TOKEN
所以我想在服务器端使用这样的东西。
${JSON.stringify(initialState).replace(/</g, '\\u003c')
它现在工作,但是有没有更好的方法来处理在这种情况下传递初始状态?上面提供的正则表达式涵盖了所有潜在的漏洞吗?
我正在考虑通过api传递一个json对象,如果这可能导致问题。
为什么初始化状态有里面的脚本元素? – kinakuta
你也需要转义'\ u2028 \ u2029'。 http://stackoverflow.com/a/9168133/351705 –
@kinakuta - 它包含用户提交的内容..只是想确保xss被阻止 – Kannaj