JSのphp htmlspecialcharsは安全ですか?JSのPHP htmlspecialcharsは安全ですか?
var jsVar = "<?php echo(str_replace(array("\r\n", "\n","\r"), "\\n",htmlspecialchars($_GET['p'], ENT_QUOTES))); ?>";
マルチバイト文字はどうですか?
JSのphp htmlspecialcharsは安全ですか?JSのPHP htmlspecialcharsは安全ですか?
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
JSリテラルを含むHTML全体をエスケープしたり、JavaScriptが特別なHTML構文(通常はタグや属性)によってのみ実行され、そのHTML構文をエスケープするので、この混乱は命令=> JSは実行されません:) –
うーん、** html **です。それは関数名にあります。 – BoltClock