Code Archive Skip to content Google About Google Privacy Terms
2007-12-22 カテゴリ: Client Side タグ: JavaScript Tips Unicode JSON さっきはPerlにはまるとか言っておきながら結局JavaScript… JavaScriptの文字列を、\uXXXXの形式のUnicodeEscapeSequenceにエスケープする関数を書きました。 JavaScriptの文字列をJSONとかでよく見かける、 \u672c\u65e5\u306f\u6674\u5929\u306a\u308a の形式の文字列に変換する関数です。ソースやサンプルは続きで。 ソース var unicodeEscape = function(str) { var code, pref = {1: '\\u000', 2: '\\u00', 3: '\\u0', 4: '\\u'}; return str.replace(/\W/g, fu
Ajaxなアプリケーションにおいて、サーバからJSONを返す場合に、JSON自体はvalidであるにも関わらず、(IEの都合で)エスケープが不足していて脆弱性につながってる場合があるので、書いておきます。 発生するかもしれない脆弱性 JSONのエスケープが不足している場合に発生する可能性のある脆弱性は以下の通りです。 JSON内に含まれる機密情報の漏えい XSS それぞれの詳細については後述します。 開発側でやるべきこと 文字列中のUnicode文字は "\uXXXX" な形式にエスケープするとともに、ASCIIな範囲であっても「/」「<」「>」「+」も同様にエスケープすることにより、前述の脆弱性を防ぐことができます。 Perlであれば、以下のような感じになります。JSON->ascii(1) に続けて、JSON文字列を正規表現で置換しているあたりがキモになります。 use utf8; u
久しぶりにハマりました・・・ HTML ファイルを読み込んで特定の HTML のコメント <!-- こういうの --> を置き換えるスクリプトを作ってたんですが、以下のようなエラーが発生して動きません。 Microsoft VBScript コンパイル エラー エラー ‘800a0409’ 終了していない文字列型の定数です。 なにこれ? ソースは以下のような感じなんですが、エラーになってしまいます。 str = Replace(str_html, "<!-- 変換前 -->", "変換後") 「終了していない文字列型の定数です。」って ” を閉じ忘れていたりする時に出るエラーなので特殊文字(エスケープ文字)が含まれてるのかと思ったんですが、どうやら違うようです。 要は、<!– が悪いみたい。 確かに script タグ内でも利用できるので、怪しいといえば怪しいですが・・・ 展開されるの??
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く