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