是PHP的htmlspecialchars安全的JS?是PHP的htmlspecialchars安全的JS?
var jsVar = "<?php echo(str_replace(array("\r\n", "\n","\r"), "\\n",htmlspecialchars($_GET['p'], ENT_QUOTES))); ?>";
對於多字節字符怎麼樣?
是PHP的htmlspecialchars安全的JS?是PHP的htmlspecialchars安全的JS?
var jsVar = "<?php echo(str_replace(array("\r\n", "\n","\r"), "\\n",htmlspecialchars($_GET['p'], ENT_QUOTES))); ?>";
對於多字節字符怎麼樣?
不,您使用json_encode
(JSON = Javascript符號)。
var foo = <?php echo json_encode('Foo "Bar" Baz'); ?>;
htmlspecialchars
轉義在HTML中具有特殊含義的字符。 Javascript文字有其他特殊字符需要照顧,所以HTML轉義沒有意義。
是的,我認爲是。但我的老闆說:「這是完全安全的!不是嗎?」我不能抱怨他.. – freddiefujiwara
@freddie呃,甚至可能是真的,如果引號被轉義並且你總是用引號括起你的值(在JS中)。這對於工作來說是錯誤的工具,而且你可能會讓你的價值超出你的需求。 – deceze
我認爲這種混淆可能是由於轉義整個HTML,包括JS文字,以及JavaScript只是通過特殊的HTML語法(通常是標記或屬性)執行的,並且您轉義該HTML語法,因此它不再提供指令=> JS不會被執行:) –
呃,這是** html **。它在函數名稱中。 – BoltClock