タグ

escapeに関するkamipoのブックマーク (5)

  • Kazuho@Cybozu Labs: String::Filter っていうモジュール書いた - 続: (Twitter の XSS 脆弱性に関連して) 構造化テキストの正しいエスケープ手法について

    先のエントリ「(Twitter の XSS 脆弱性に関連して) 構造化テキストの正しいエスケープ手法について」の続き。 弾さんが「404 Blog Not Found:DHTML - 構造化テキストは構造化するのがやっぱ正しい」で示されているような DOM ベースの操作を行えば、原理的に XSS 脆弱性を防ぐことができます。ただ、クライアントサイド JavaScript によるレンダリングはウェブの構造を破壊するという点で筋が悪い(テーブルと FONT タグを利用したページレイアウトが批判されていた頃を覚えていらっしゃいますでしょうか。JavaScript によるレンダリングはウェブのリンク構造も破壊するので一層たちが悪いというのが自分の考え)ですし、サーバサイドでの DOM 操作は重たいので、できれば避けたいところです。 構造化テキストの HTML への変換は、よほど複雑な記法でない限り

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

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

  • URIに使ってよい文字の話 - RFC2396 と RFC3986 - 本当は怖いHPC

    POSTするデータを、(プレビューのために)javascriptでGETアクセスするような処理を書いていてハマった話。 発端は、textareaに'(シングルクオートまたはアポストロフィー)が入ると、Railsがそこから先のパラメーターを無視しちゃうっていうこと。いろいろ調べた結果、以下のことがわかった(Railsのバージョンは2.0.2)。 URIを定義する2つのRFC URIの構文はRFCで定義されている。これには2つあって、従来のRFC2396(1998年発行)と、RFC3986(2005年発行)だ。 RFC3986によれば、 This document obsoletes [RFC2396], which merged "Uniform Resource Locators" [RFC1738] and "Relative Uniform Resource Locators" [RF

    URIに使ってよい文字の話 - RFC2396 と RFC3986 - 本当は怖いHPC
  • PHPの URLエンコード (urlencode, rawurlencode, http_build_query)

    (2013/5/19 変更:rawurlencode()はRFC3986なのにRFC1738と書いてたので訂正。) まずはurlencode()とrawurlencode()を比較。 urlencode() 半角チルダ(~)を%7Eに変換する 半角スペースをプラス(+)に変換する rawurlencode() 半角チルダ(~)の変換についてはPHPのバージョンによって違う PHP 5.2.xまでは、%7Eに変換する PHP 5.3.0からは、%7Eに変換しない(チルダのまま) 半角スペースを%20に変換する rawurlencode()はRFC1738 RFC3986に沿った変換とされているので、基的にはurlencode()よりrawurlencode()の方が無難。 ただし、RFC1738 3986ではチルダを%7Eに変換しない。 ちなみに、RFC1738はその後、RFC3986によ

  • CPAN - URI::Escape::XS Released! : 404 Blog Not Found

    2007年04月28日02:30 カテゴリLightweight Languages CPAN - URI::Escape::XS Released! URI-Escape-XS を Release したのでお知らせします。 on CPAN (coming soon) URI-Escape-XS-0.01.tar.gz なぜ車輪を再発明したかといえば、今ある車輪のころがりがよくなかったから。 URI::Escapeへの不満は二つあって、一つは速度が不十分だったこと。LWPなどと組み合わせて使う場合は、正規表現ベースの変換でも、他のタスクの方がずっと重いので充分速いのですが、ログの解析する時などに利用すると、ずいぶんと遅く感じます。このあたりはある作業をしていて、気になってProfileしてみてはじめて気がつきました。 もう一つは、%uHHHHの対応。一応にぽたん作のURI::Escape:

    CPAN - URI::Escape::XS Released! : 404 Blog Not Found
  • 1