タグ

pythonとsecurityに関するtyruのブックマーク (3)

  • 正規表現によるバリデーションでは ^ と $ ではなく \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の正規表現ってデフォルトで複数行モードなんだ。知らなかった。
  • Akky@サイボウズ・ラボ : ねじ曲げ画像を使った新方式のCAPTCHA MintEyeを23行のPythonコードで破った話

    先月ご紹介してなかなか好評だった、画像をグニャリと円状に曲げて加工し、それを正しい状態に戻すことで人間かスパムプログラムかを判定するという新方式のCAPTCHA MintEyeですが、一ヶ月しか経っていないのに機械的に解いてしまう話が出てきてしまいました。それもPythonでたった23行のコードで。 このスクリプトがやっているのは、グレースケールに変換した上で、Sobel()で画像上のエッジを取得し、エッジの合計をグラフにプロットしている、というだけですね。画像ファイルを開くところやグラフを描くところを除けば、数行の短さです。 スライダーにあわせて表示されるすべての画像について計算を行いグラフにプロットすると、たとえば以下のような結果となり、エッジの合計がもっとも小さくなる赤い点に対応する画像こそが、ねじまげられていない元の画像だというのがわかるということ。 このスクリプトで、Mintey

    Akky@サイボウズ・ラボ : ねじ曲げ画像を使った新方式のCAPTCHA MintEyeを23行のPythonコードで破った話
  • Broadcom Community - VMTN, Mainframe, Symantec, Carbon Black

    VMware Explore Registration Is Open Deepen your expertise. Deliver more value. Get ahead in Las Vegas, August 31 – September 3, 2026. REGISTER NOW Join Broadcom Rewards Join the Broadcom Rewards Program to earn exclusive swag and experiences. Register for Broadcom Rewards VMware Explore Registration Is Open Deepen your expertise. Deliver more value. Get ahead in Las Vegas, August 31 – September 3,

  • 1