タグ

正規表現とRubyに関するiwwのブックマーク (4)

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

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

    iww
    iww 2014/03/04
    『Rubyの正規表現機能は、デフォルトで複数行モードである』 どういう歴史・理由でこんな仕様になっちゃってんのか 興味ある。
  • Matzにっき(2007-05-25)

    << 2007/05/ 1 1. [Ruby] ITmedia エンタープライズ:刑務作業でRuby、世界初の受刑者によるソフトウェア開発 2. [Ruby] MS、「Silverlight」を複数プラットフォーム対応へ - CNET Japan 3. お客様 4. [Ruby] Calling Erlang from Ruby (Teaser) 2 1. [言語] random-state.net / Method Cache Hacking (May 1st 2007) 2. ICFP Programming Contest 2007 3. 「働く」って何だっけ?日の労働観を再考せよ (新日的経営の姿):NBonline(日経ビジネス オンライン) 3 1. [原稿] 日経Linux 2007年7月号 2. [言語] The World of Hello World 3. [言語]

  • 5.7.0がマージされた件について - 報國挺身日記

    このまま放置すると、私のほうが方針を変えたと思われるので事実を書いておきます。 私の方針は最初から全く変わっていない この件について、関係者からメールが来たことは一度もない 従って、話し合いをしたこともない ある日突然、5.7.0がRubyにコミットされていた http://www.atdot.net/~ko1/diary/200704.html#d24 松氏のほうに話し合うつもりがあったとすれば、5.7.0をコミットする前に何故、確認のメールを私に送ることさえしなかったのでしょうか? 私から拒否のメールを受けることが僅かでも損になると思ったからでしょう。 これから私にできることは何もありませんので、今後何も起こりません。従って、この件について私にメール、コメント等を送らないでください。返事をしませんので。

    5.7.0がマージされた件について - 報國挺身日記
  • 正規表現機能別逆引きリファレンス

    正規表現機能別逆引きリファレンス GNU grep (2.5.1) GNU egrep (2.5.1) Ruby/鬼車 (5.9.1) Perl (5.8) 秀丸 (HmJre.dll 1.92) Vim (7.1) boost::regex (1.36.0) 任意の1文字 . . . . . . . \C いずれか1文字 […] […] […] […] […] […] […] いずれか以外の1文字 [^…] [^…] [^…] [^…] [^…] [^…] [^…] エスケープ \ \ \ \ \ \ \ 選択 r1\|r2 r1|r2 r1|r2 r1|r2 r1\|r2 r1|r2 r1\|r2 一回または零回(欲張り) ? ? ? ? ? \= ? 零回以上(欲張り) * * * * * * * 一回以上(欲張り) \+ + + + + \+ + n回以上m回以下(欲張り) \{n

  • 1