タグ

phpとsecurityに関するmumumu-tanのブックマーク (6)

  • もし『よくわかるPHPの教科書』の著者が徳丸浩の『安全なWebアプリケーションの作り方』を読んだら - ockeghem's blog

    たにぐちまことさんの書かれた『よくわかるPHPの教科書(以下、「よくわかる」)』を購入してパラパラと見ていたら、セキュリティ上の問題がかなりあることに気がつきました。そこで、拙著「体系的に学ぶ 安全なWebアプリケーションの作り方(以下、徳丸)」の章・節毎に照らし合わせて、「よくわかる」の脆弱性について報告します。主に、徳丸の4章と5章を参照します。 4.2 入力処理とセキュリティ 「よくわかる」のサンプルや解説では、入力値検証はほとんどしていません。しかし、入力値検証をしていないからといって即脆弱かというとそうではありません。徳丸でも強調しているように、入力値検証はアプリケーション要件(仕様)に沿っていることを確認するもので、セキュリティ対策が目的ではないからです。 「よくわかる」の中で、私が見た範囲で唯一の入力値検証は、郵便番号のチェックをするものです。以下に引用します(「よくわ

    もし『よくわかるPHPの教科書』の著者が徳丸浩の『安全なWebアプリケーションの作り方』を読んだら - ockeghem's blog
  • CSRF対策のトークンをワンタイムにしたら意図に反して脆弱になった実装例

    補足 この記事は旧徳丸浩の日記からの転載です(元URL、アーカイブはてなブックマーク1、はてなブックマーク2)。 備忘のため転載いたしますが、この記事は2011年1月27日に公開されたもので、当時の徳丸の考えを示すものを、基的に内容を変更せずにそのまま転載するものです。 補足終わり 橋口誠さんから今話題の書籍パーフェクトPHP (PERFECT SERIES 3)を献いただきました。ありがとうございます。このエントリでは同書のCSRF対策の問題点について報告したいと思います*1。 書では、CSRFの対策について以下のように説明されています(同書P338)。 CSRFへの対応方法は、「ワンタイムトークンによるチェックを用いる」「投稿・編集・削除などの操作の際にはパスワード認証をさせる」などがあります。一番確実な方法は両者を併用することですが、ユーザ利便性などの理由から簡略化する場合で

  • ウノウラボ Unoh Labs: PHPで暗号化・復号化あれこれ

    shimookaです。 皆さんはPHPでデータの暗号化・復号をする必要に迫られた場合、どのようにしているでしょうか?今回は、PHPで利用可能なモジュールやパッケージとそれらのサンプルを3つほど挙げてみました。 mcrypt拡張モジュールを使った暗号化 libmcryptを利用したPHP拡張モジュールです。DES、3DES、Blowfish、RIJNDAEL(ラインダール:AES暗号とも呼ばれる)、Blowfishなどのブロック暗号をサポートしています。利用可能な暗号モードはCBC、OFB、CFB、ECBです。 PHPで利用するには、libmcryptをインストールし、configureオプションに「--with-mcrypt」を付ける必要があります。また、PHP5以降、libmcrypt 2.5.6以降が必要です。 以下は、SSHやファイル暗号化ソフトウェアなどに広く利用されているBlow

  • 第5回 まだまだ残っているSQLインジェクション | gihyo.jp

    SQLインジェクションは古くから知られている代表的なWebアプリケーションの脆弱性です。JavaScript関連の脆弱性に比べると対処が非常に簡単であるにも関わらず、まだまだ多くのアプリケーションがSQLインジェクションに脆弱です。SQLインジェクションに脆弱なアプリケーションはPHPアプリケーションに限った問題ではありません。JavaPerlなど、ほかの言語で作成されたWebアプリケーションにもまだまだ多くのSQLインジェクション脆弱性が残っていると考えられます。 重要なのは「正しく行えばSQLインジェクション対策は簡単」であることです。 SQLインジェクションの動作原理 SQLインジェクションの動作原理は単純で、解説するまでもないと思いますが、簡単に説明します。SQLインジェクションは、動的にSQL文を生成する際のパラメータに、プログラマが意図していない文字列を与えることにより、デー

    第5回 まだまだ残っているSQLインジェクション | gihyo.jp
  • PHP逆引きレシピは概ね良いが、SQLインジェクションに関しては残念なことに - ockeghem's blog

    404方面でも絶賛されていたPHP逆引きレシピを購入した。書はとても丁寧な仕事で素晴らしいと思ったが、セキュリティに関しては若干残念な思いをしたので、それを書こうと思う。 目次は以下のようになっている。 第1章 準備 第2章 PHPの基構文 第3章 PHPの基テクニック 第4章 ファイルとディレクトリ 第5章 PEARとSmarty 第6章 Webプログラミング 第7章 クラスとオブジェクト 第8章 セキュリティ 8.1 セキュリティ対策の基 8.2 PHPの設定 8.3 セキュリティ対策 第9章 トラブルシューティング 第10章 アプリケーション編 PHP逆引きレシピ オフィシャルサポート 書は、タイトルの示すように、コレコレしたいという目的ごとにPHPでの書き方が書かれている。よくある逆引き辞典タイプのだが、類書に比べて丁寧に書かれている印象を受けた。私が感心したのは、PH

    PHP逆引きレシピは概ね良いが、SQLインジェクションに関しては残念なことに - ockeghem's blog
  • 携帯電話向けWebアプリのセッション管理はどうなっているか - ockeghem's blog

    最近購入したPHP×携帯サイト 実践アプリケーション集を読んでいて妙な感じがしたので、この感覚はなんだろうと思っていたら、その理由に気づいた。書に出てくるアプリケーションは、PHPのセッション管理機構を使っていないのだ。そんな馬鹿なと思ったが、目次にも索引にも「セッション」や「session」という語は出てこない。サンプルプログラムのCD-ROM上で session を検索しても出てこないので、セッションはどこでも使っていないのだろう。 そうは言っても、書にはブログやSNSなど認証が必要なアプリケーションも登場する。書で採用している認証方式はこうだ。 携帯電話の個体識別番号を用いた、いわゆる「かんたんログイン」のみを使う 認証状態をセッション管理機構で維持しない。全てのページで毎回認証する そのため、「iモードID」など、ユーザに確認せずに自動的に送信されるIDを用いる つまり、全て

    携帯電話向けWebアプリのセッション管理はどうなっているか - ockeghem's blog
  • 1