タグ

PHPと正規表現に関するat_yasuのブックマーク (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プログラムメモ|正規表現|プログラムメモ

    PHP5.2から filter_var というメールアドレス等をチェックする関数が追加されています。 filter_var でのメールアドレスのチェック filter_var('bob@example.com', FILTER_VALIDATE_EMAIL); 便利なのですが昔の日の携帯アドレスはRFC準拠していなくても使えていたみたいですし、そういったアドレスはエラーとされてしまいます。 それなら正規表現のほうがカスタマイズがきいていいような気がします。 正規表現でのメールアドレスチェッククラス【AddressValidate.phpPHPのメジャーフレームワークの正規表現を網羅してクラス化してあります。便利! http://d.hatena.ne.jp/m-tag/20081118/1227000201 PHPメジャーフレームワークの正規表現 CakePHP 1.2 /^[a-z

    at_yasu
    at_yasu 2013/03/21
    割と忘れる日本語正規表現
  • 1