タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

正規表現に関するhamacoのブックマーク (2)

  • 正規表現によるバリデーションでは ^ と $ ではなく \A と \z を使おう

    正規表現によるバリデーション等で、完全一致を示す目的で ^ と $ を用いる方法が一般的ですが、正しくは \A と \z を用いる必要があります。Rubyの場合 ^ と $ を使って完全一致のバリデーションを行うと脆弱性が入りやすいワナとなります。PerlPHPの場合は、Ruby程ではありませんが不具合が生じるので \A と \z を使うようにしましょう。 はじめに 大垣さんのブログエントリ「PHPer向け、Ruby/Railsの落とし穴」には、Rubyの落とし穴として、完全一致検索の指定として、正規表現の ^ と $ を指定する例が、Ruby on Rails Security Guideからの引用として紹介されています。以下の正規表現は、XSS対策として、httpスキームあるいはhttpsスキームのURLのみを許可する正規表現のつもりです。 /^https?:\/\/[^\n]+$/

  • PHPの独特な正規表現関数:mb_ereg_search - hnwの日記

    直前の記事「mb_ereg_replace関数でe修飾子を使う際の注意点」で利用しているmb_ereg_search_ナントカという関数群は特徴的な関数ですが、あまり使用例を見ない関数です。今回はこの関数群の概要を紹介します。 この関数群は正規表現マッチを行うmb_ereg系関数のバリエーションの一つです。前回正規表現マッチした場所を覚えていて、再度呼び出すと前回のマッチングに引き続いて正規表現マッチを行います。これを使うと、次のように正規表現マッチ毎に何かの処理を行うループが作れます。 <?php mb_ereg_search_init($subject, $pattern, $option); while (mb_ereg_search()) { $matches = mb_ereg_search_getregs(); // マッチした内容ごとの処理 } Perlだとm/../gでルー

    PHPの独特な正規表現関数:mb_ereg_search - hnwの日記
  • 1