タグ

rubyと正規表現に関するbasementjaxxのブックマーク (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]+$/

  • [連載:正規表現] Unicode文字プロパティについて(1)|TechRacho by BPS株式会社

    はじめまして、hachi8833です。 正規表現において、使わないまま死ぬのはあまりにもったいない「Unicode文字プロパティ」について解説します。これについてネット上にまとまった情報がほとんどなく、しかたがないので自分で書くことにしました。書きながら早くも記事があふれてきたので、見出しに「連載」の文字を追加などしてみました。たぶん他所ではほとんど見かけることのない連載になると思います。よろしくお願いします。 通常の開発においては、目的を達成する正規表現を作成してコードが動けば事足りるものであり、コーディング中に正規表現と延々付き合うことは普通ないでしょう。料理人は包丁を研ぐのに時間をかけすぎないものです。しかし特殊な業界の特殊な人々(日に5人もいないと思います)は、来る日も来る日も正規表現を書き続けていたりするので、このUnicode文字プロパティは当にありがたいものです。私の場合

    [連載:正規表現] Unicode文字プロパティについて(1)|TechRacho by BPS株式会社
  • 1