タグ

rubyとsecurityに関するtyruのブックマーク (4)

  • ファイルオープンの罠 - Journal InTime(2017-12-15)

    _ ファイルオープンの罠 僕が書いたNet::FTPのコードに脆弱性報告があり、修正版がリリースされた。関係者のみなさん、ありがとうございました。 CVE-2017-17405: Net::FTP におけるコマンドインジェクションの脆弱性について 問題があったのは以下のようなコードだった。 def getbinaryfile(remotefile, localfile = File.basename(remotefile), blocksize = DEFAULT_BLOCKSIZE, &block) # :yield: data f = nil result = nil if localfile if @resume rest_offset = File.size?(localfile) f = open(localfile, "a") else rest_offset = nil f

    tyru
    tyru 2017/12/18
    Perl でも open() の引数にファイル名だけ渡せるようにできるのに、もしかして Ruby って | とか来ないようにエスケープするしかないの?
  • 正規表現によるバリデーションでは ^ と $ ではなく \A と \z を使おう

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

    tyru
    tyru 2014/03/04
    Rubyの正規表現ってデフォルトで複数行モードなんだ。知らなかった。
  • 学生が開発したコードがRubyの本体に---セキュリティ&プログラミングキャンプ2009を開催

    この記事は会員登録で続きをご覧いただけます申込は簡単3分! 今すぐ会員登録(無料) 会員の方はこちら 【8/20まで】今なら年額プランが2カ月分お得! 詳しくはこちら ▼日経クロステック有料会員になると… オリジナル記事がすべて読める 専門雑誌7誌の記事も読み放題 雑誌PDFを月100ページダウンロードできる

    学生が開発したコードがRubyの本体に---セキュリティ&プログラミングキャンプ2009を開催
  • 本当は怖い家庭の Rubygems - ヽ( ・∀・)ノくまくまー(2009-06-04)

    ● [Ruby] 当は怖い家庭の Rubygems /usr/bin/* を勝手に荒らされるという話。今気付いただけので、ガイシュツなら無視してOK。 詳細 パッケージのディレクトリに、 とか書いておけば、その gem ファイルをインスコしちゃうと、無条件、無確認で /usr/bin/ls を上書きするのね。 gem のインスコなんてフツー root でやるし ギッハブにあるよく知らない野良 gem でも躊躇せずインスコしてるし Rubygems のセンスのなさは世界が認めるところだけど、このセキュリティ感覚は異常じゃね?俺が知る限り、これは世界一楽なバックドア仕込みフレームワーク。 使い方間違い? いやいや。もしかしたら、作者に言わせれば、 それはお前の使い方間違いだよ bin/* をチェックしてからインスコしろよ あと、野良とか入れんなよ てことなのかもしれないが、bin/* のチェ

  • 1