タグ

rubyとsecurityに関するkiyo_hikoのブックマーク (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]+$/

    kiyo_hiko
    kiyo_hiko 2014/03/04
    マッチングの先頭と末尾にはキャレットとダラーではなく\Aと\z使ったほうが安全らしい
  • 素人がWebサービスを作ってみて分かった9つのこと:Rails Hub情報局:エンジニアライフ

    こんにちは、@IT編集部の西村賢です。IT系のオンラインメディアで編集・記者をしております。タイトルに「ど素人」と書くと、ちょっと嘘になるので「素人」と書きましたが、素人がWebアプリを作ってみた体験談と感想を書いてみたいと思います。「オレもプログラミングを勉強して何か作ってみたい!」と考えている人や、「自分でサーバを借りて何かやってみようと思っていたんだよね」という人の参考になれば幸いです。 去年の夏、Webアプリケーション開発フレームワークのRuby on Railsのことを調べていて「面白そうだな」と思い、ドキュメントに従ってサンプルアプリをいくつか作ってみました。作ったり壊したりしている間に、こう思いました。 「あれ? これなら自分が欲しかったサービスが作れちゃうんじゃないの?」 で、「Worklista」(ワークリスタ)という名前のWebサービスを作りました。3カ月ほど前から親し

    素人がWebサービスを作ってみて分かった9つのこと:Rails Hub情報局:エンジニアライフ
    kiyo_hiko
    kiyo_hiko 2011/09/13
    「セキュリティーは非常に難しい」
  • 1