タグ

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

  • 関連タグはありません

タグの絞り込みを解除

regexpに関するsakurasakurasのブックマーク (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]+$/

  • regexp - ^$でなくて\A\zを使おう : 404 Blog Not Found

    2009年03月09日00:30 カテゴリLightweight LanguagesTips regexp - ^$でなくて\A\zを使おう まずは回答から。 正規表現で「制御文字以外」のチェック - ockeghem(徳丸浩)の日記 文字エンコーディングの妥当姓 制御文字(\x00〜\x1f, \x7f)のチェック 文字列長のチェック このうち後ろ二つを正規表現として書くにはどうすればいいかを考えていました。 こういう時には、「全文字がOKならOK」と考えるのではなく、「一文字でもNGならNG」と考えると楽になります。それは「スペースと非制御文字以外」なのですから、/[^ \S]/が求めていた正規表現で、=~ではなく!~が使うべき演算子ということになります。全角スペースもOKにしたければ、/[^ \x{3000}\S]/。[追記参照] [Run via Codepad] #!perl -

    regexp - ^$でなくて\A\zを使おう : 404 Blog Not Found
  • 1