タグ

エスケープとjavascriptに関するokyawaのブックマーク (2)

  • PHP : 文字列をjavascript用にエスケープする – 仙人の心得

    PHPで作成した文字列をjavascript上で使用したいときのエスケープ処理について。 ダブルクォーテーションやシングルクォーテーション、バックスラッシュ等をjavascript上で文字列として扱うにはエスケープが必要になる。 PHPのjson_encode関数は自動で文字列をjavascript用にエスケープしてくれるが、これは配列やオブジェクトにも使える関数で、前後に””が付いた形で出力される。 単に文字列として扱いたい場合前後のダブルクォーテーションは邪魔なのでそれを取り除いて返す関数を作成した。 最初のifはNULLを文字列の”null”で返さないようにするため。 function js_string($str){ if(!$str) $str = ''; $tmp = json_encode($str); preg_match('/^"(.*)"$/',$tmp,$m); re

  • PHPのJSONのエスケープ

    (Last Updated On: 2023年12月8日) 追記:最近のOWASPガイドの更新でJavaScript文字列はUnicodeエンコードで安全性を確保するよう変更されました。元々このブログでもUnicodeエスケープのまま利用するように書いています。他の言語のユーザーはUnicodeエスケープを利用しましょう。PHPもASCII領域の文字をUnicodeエスケープするようにした方が良いと思います。これは提案して実現するように努力します。 JSONはJavaScriptのオブジェクトや配列を表現する方式でRFC 4627で定義されています。メディアタイプはapplication/json、ファイル拡張子はjsonと定義されています。 PHPにJSON形式のデータに変換するjson_encode関数とjson_decode関数をサポートしています。 JSON関数がサポートされている

    PHPのJSONのエスケープ
  • 1