2016-07-27 87 views
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對象,如果這可能導致問題。

+0

爲什麼初始化狀態有裏面的腳本元素? – kinakuta

+0

你也需要轉義'\ u2028 \ u2029'。 http://stackoverflow.com/a/9168133/351705 –

+0

@kinakuta - 它包含用戶提交的內容..只是想確保xss被阻止 – Kannaj

回答

0

可以this解決你的問題?

它就像JSON.stringify但自動逃脫危險特性

相關問題