タグ

Securityとphpに関するred_snowのブックマーク (6)

  • 大垣さん流の「入力ミス」と「入力バリデーションエラー」を区別するスクリプトを書いてみた

    大垣さんとの「バリデーション論争」において、大垣さんは「入力ミス」と「入力バリデーションエラー」を区別するものだと主張されています(参考:「入力ミス」と「入力バリデーションエラー」の違いに関する大垣さんと徳丸のやり取り)。 しかし、「入力ミス」と「入力バリデーションエラー」の区別の方法が分からないので伺ったところ、大垣さん曰く @ockeghem もしプログラマが「入力ミスと入力バリデーションエラーの区別ができない」という事は「プログラマが入力仕様を理解していない」という事です。正直、何が難しいのか理解できません。 http://t.co/Xkzs44zIJw ということでしたが、ブログエントリを書いていただきました。 簡単な問題です。プログラムが「想定する入力」以外は「妥当な入力」ではありません。プログラムを作っているプログラマが想定する入力を明確に理解していないなら、どのような入力仕様

  • PHP Vulnerability Hunter - 自動ファジングテストツール - うさぎ文学日記

    Webアプリケーションの脆弱性を見つける方法の1つにファジングがありますが、このツールはPHPのWebアプリケーションのファジングテストを自動的に行うためのツールです。ローカルのファイルに対して使うツールとなっていて、ソースコードの分析まで行うとのこと。 インタフェースはこれだけ、簡単に使えそう。果たしてその実力や如何に? 未検証なので、何かの機会で試してみたいところ。 PHP Vulnerability Hunter v.1.1.4.6 - Automated fuzz testing tool ~ The Hacker News | Hacking News | Learn Ethical Hacking Training

    PHP Vulnerability Hunter - 自動ファジングテストツール - うさぎ文学日記
  • PHP環境で発生するMongoDB Request Injection攻撃

    はじめに SaaS型WAF「Scutum(スキュータム)」では、最近バックエンドのDBにMongoDBの導入を進めています。私も個人的にPHPのフレームワークであるCakePHP向けにMongoDBを扱うプラグインCakePHP-MongoDB Datasourceを開発し、公開しています。 https://github.com/ichikaway/cakephp-mongodb/ 今回は、PHPからMongoDBを扱う際の注意点として、RequestInjection攻撃に関して書きたいと思います。この問題は、phpマニュアルのMongoドライバーの章でも扱われています。 この記事では、はじめにPHPでMongoを操作する方法、PHPの基を書き、最後にInjection攻撃の仕組みと対応方法を書きます。 PHPでMongoDBを扱うには PHPでMongoDBを操作する場合、10gen

    PHP環境で発生するMongoDB Request Injection攻撃
  • PHP unserialize()が__destruct()を実行する?

    CakePHPセキュリティホール(まだの方はご対応を!)から、unserialize()が話題になっています。 このセキュリティホールは、外部から送信された値をチェックせずにunserialize()したことが引き金になっており、安全でない値をunserialize()することの危険性が指摘されています。 下記エントリでは、コードを交えてunserialize()から__destruct()が実行される過程が解説されています。 PHP5 __destruct() and unserialize() function – TokuLog 改メ tokuhirom’s blog 念のための補足なのですが、unserialize()から__destruct()が呼ばれるわけではありません。 下記コードは、PHP5.3.3で実行しています。 unserialize()から実行される関数 unse

    red_snow
    red_snow 2010/11/19
    自分でやってみないといまいち動きがわからないな
  • PHP5 __destruct() and unserialize() function - TokuLog 改メ tokuhirom’s blog

    http://co3k.org/diary/12 このへんみておもったこと。 unserialize() 関数はオブジェクトの unserialize もできるのだが、5 以後では __destruct() が導入されているので、その unserialize したオブジェクトの __destruct() がよばれてしまう。この際に、たとえば cache の処理などで __destruct() でファイルにデータをかきこむ、などの処理をしていると、そのファイルが汚染されてしまったりするということがおきうる。 で、実際に cakephp ではそういう状況になって、任意のコードが実行可能になった、と。 まとめると 5 以後では unserialize() をユーザーからの入力にたいしてはかならず検証してからおこなうようにするべき。 っていうか、ユーザーの入力にたいしては unserialize(

    red_snow
    red_snow 2010/11/18
    ふむむむ
  • PHPでお手軽に暗号化、復号する - CodeBook.php [ゼロと無限の間に]

    CodeBook.phpが内部的に使用しているphp-mcryptは、PHP 7.1.0 で 非推奨 となり、 PHP 7.2.0 で削除されました。 コメントと更新履歴はCode Book Archive - ゼロと無限の間のログへどうぞ。 PHPphp-mcryptさえあればいろんな暗号アルゴリズムを使えるけど、いざやろうとすると意外に面倒。特に、Javaなど他のアプリやツールとやり取りするときとか。 IVやパディングについて考えるのは大したことではないと言えばそれまでだが、毎回チョコチョコ書くのはちょっと手間。パディングがPKCS#5の場合なんか特に。 なので手軽に暗号化と復号ができるクラスを作った。(要php-mcrypt。) クラス名はサイモン・シンの力作、暗号解読にちなんで。 このによれば、PHPによる暗号化はCODEではなくCIPHERだそうだけれど。 <?php req

    red_snow
    red_snow 2010/11/16
    PKCS#5とPKCS#7の違いがわかりゃん・・・
  • 1