タグ

escapeに関するastk_fのブックマーク (6)

  • Unicodeエスケープ文字を元に戻す - xin9le.net

    稀に出くわす Unicode 文字のエスケープシーケンス。以下のようなヤツです。 var text = @"\u3053\u3093\u306b\u3061\u306f\u3001\u4e16\u754c\uff01"; その文字をプログラムで戻さなければならない場合があります。今回はそんな方法のメモ。 正規表現の置換を使う ストレートな方法としては、正規表現で '\u....'と入ってる場所を探し出して置換してしまうというのがあるでしょう。サンプルとしては以下のようになります。毎回書くのがダルいですが、メソッド化してしまえば良いですね。 var result = Regex.Replace ( text, @"\\[Uu]([0-9A-Fa-f]{4})", x => { var code = ushort.Parse(x.Groups[1].Value, NumberStyles.Al

    Unicodeエスケープ文字を元に戻す - xin9le.net
  • PHPのsprintfによるSQL組み立てで脆弱性が生じる例

    1番目 sprintf("SELECT * FROM table WHERE id = %d", $value); $valueにどのようなデータが入っていようが、PHPの「親切な」型変換により数値に変換されます。escape()が無くても問題ありません。 "123" => 123 " 123" => 123 "123abc" => 123 "abc" => 0 " " => 0 "" => 0 null => 0 ただし、4つめ以降の例はアプリケーションとしては意図しない動作になるでしょうから、その観点では事前にバリデーションが必要です。 2番目 sprintf("SELECT * FROM table WHERE id = %s", escape($value)); 1番目の%dを%sに書き換えescape()を付加した例です。$valueはリテラルではなくSQL構文の一部として展開さ

    PHPのsprintfによるSQL組み立てで脆弱性が生じる例
  • Escape Codec Libraryの詳細情報 : Vector ソフトを探す!

    ソフト詳細説明 ◆文字列をすべてのコンピュータで読めるような形式に変換したり、変換されたものを元の文字列にデコードすることができる関数のライブラリです。 ◆ビルトイン関数の escape() , unescape() とは異なり、どの種類のブラウザでも同じ変換結果が得られます。 ◆JISコード変換テーブルを搭載しているので、従来JavaScriptでは実現が困難であった、Shift_JISコードやEUC-JPコードなどの文字コードとしてのエンコード・デコードも可能となっています。 なお、この変換テーブルは、直接漢字は記述せず、Unicode 番号を圧縮したデータをASCIIコードの文字のみで記述しているので、任意の文字コードで使用可能です。 ◆動作確認用のフォーム TransEscape.html を付属しているので、すぐに使用することもできます。

  • Closure Templatesのオートエスケープが最強すぎる件 - teppeis blog

    rails3以降のWEBアプリケーションにありがちなXSS - hanagemanの日記ではない この記事を読んで、ちょうど最近使っているGoogle Closure Templatesがいい感じだったので紹介します。 コンテキストが異なる/重なるポイントでのエスケープ問題 最近のほとんどのテンプレートエンジンでは、変数埋め込みをデフォルトでHTMLエスケープしてくれます。が、元記事で指摘されているように、それでは正しくないケースがあります。HTML PCDATA以外のコンテキストで文字列を生成したり、複数のコンテキストが重なっている箇所です。 極端な例としてはこんな感じです。 <a href="{$x1}" onclick="alert('{$x2}')">{$x3}</a> <script> var x = '{$x4}'; var y = {$x5}; </script> <styl

    Closure Templatesのオートエスケープが最強すぎる件 - teppeis blog
  • エーアイタコス ブログ

  • Kazuho@Cybozu Labs: (Twitter の XSS 脆弱性に関連して) 構造化テキストの正しいエスケープ手法について

    昨日の Twitter の XSS 騒ぎは、まだ皆さんの記憶に新しいことと思います。いい機会なので、ツイートのような構造化テキストのエスケープ手法について触れておきたいと思います。 Twitter のメッセージは、単なる平文(プレインテキスト)ではなく、「@英数字」のような他のユーザーへの言及と「http://〜」のような URL を自動的にハイパーリンク化する構造化テキストです。 このような複数のルールをもつ構造化テキストを HTML 化する際には、どのようなコードを書けばいいのでしょう? まず「@〜」をリンク化してから、URL をリンク化すればいいのでしょうか? それだと、@〜 のをリンク化した A HREF タグの中の URL がさらにリンク化されていまいますね。 では、URL をリンク化してから @〜 をリンク化すればいいのでしょうか? それだと、@ を含む URL があった場合に

  • 1