2013-02-22 60 views
0

當你逃脫輸出你做這樣的防止XSS:如何逃脫JSON喜歡你逃避輸出,以防止XSS

 echo htmlentities($variable); 

我們需要逃避JSON對象過於防止XSS?:

 echo htmlentities(json_encode($variable)); 

還是沒有必要,請有人告訴我。如果不需要,請解釋原因?

JQuery的:

阿賈克斯的成功部分內:

這將是在$。每個環路和內容將是:

$('#textbox').attr('value', variable); 
+1

你如何轉義數據取決於*你把它放在哪裏*,而不是你要轉義的數據是什麼。我們不能告訴你需要對數據做什麼,因爲我們不知道你的'echo'聲明出現在哪裏。 – Quentin 2013-02-22 17:01:23

+0

JSON對象被解析爲javascript/JQuery。並用於顯示輸出,有時放在文本框中。 – 2013-02-22 17:47:12

+0

「JSON對象被解析爲javascript/JQuery」 - 沒有說明你在哪裏放置它。只是什麼處理它。這可能意味着你創建了一個'application/json' HTTP響應,或者將它作爲'data-json'屬性值嵌入到div中,或者將它嵌入到'

0

號JSON編碼輸出是安全的。所有可能有害的字符或輸入類型都會被正確轉義或引用。

+0

根據JSON文本的回顯位置,這可能會也可能不會。 (例如,如果它被回送到HTML屬性值中,它不是真的) – Quentin 2013-02-22 17:02:47