タグ

ブックマーク / blog.nomadscafe.jp (2)

  • XSSを回避しつつ、テンプレートからJavaScriptにJSONで値を渡す方法 - blog.nomadscafe.jp

    HTMLのscriptタグ内にデータを埋め込む際のエスケープ処理モジュール書いた」に引き続いて、XSSを避けつつ複数の値をJSONで渡す方法。 答えはmalaさんが書いてます テンプレートエンジンでJSONを生成する(多くの場合間違えるので、推奨しない) scriptタグの中でJSONを使わない 可能であればJSONライブラリのオプションで<>/いずれかをエスケープする。 生成されたJSON文字列の<>/いずれかを正規表現などを使って置換する。 JSONのvalueに当たる部分には「HTMLエスケープ済みの文字列を入れる」という規約を設けて事前にエスケープする。 の3番目以降。 ということで実装してみる。目標としてはXslateのfilterとして実装 [% hashref | json %] の様な形をとり、JSONのvalueにあたる部分はすべてHTML Escapeし、HTML中に

    thorikawa
    thorikawa 2011/03/29
    String.prototype.unescapeHTMLxの実装など
  • JSONとContent-Type : blog.nomadscafe.jp

    JSONとContent-Type サーバサイドからJSONを吐き出すときのContent-Typeなのですが、各ブラウザによって対応がちょっと違います。 下の表にまとめてみました。 ×のところはeval中にエラーがでます。 Content-type WinIE Firefox Safari Opera(8.5) text/javascript ○ ○ △ × text/javascript; charset=utf-8 ○ ○ ○ × text/javascript; charset=utf8(utf-8の間違い) × ○ ○ × text/javascript+json ○ ○ △ × text/javascript+json; charset=utf-8 ○ ○ ○ × text/html; charset=utf-8 ○ Safariでマルチバイトな文字を含む場合は、「charse

    thorikawa
    thorikawa 2008/12/30
    各ブラウザでのJSONレスポンス対応状況
  • 1