Category Archives: セキュリティ

セキュアな PHP アプリケーションを作成するための 7 つの習慣

IBMのPHP記事は衒いがなく結構すきです。

セキュアな PHP アプリケーションを作成するための 7 つの習慣
http://www.ibm.com/developerworks/jp/opensource/library/os-php-secure-apps/

    入力を検証する
    ファイルシステムを保護する
    データベースを保護する
    セッション・データを保護する
    XSS (Cross-Site Scripting: クロスサイト・スクリプティング) の脆弱性から保護する
    フォームへの投稿を検証する
    CSRF (Cross-Site Request Forgeries: クロスサイト・リクエスト・フォージェリー) から保護する

復習復習っと。

知らなかったよ、expose_php

最近 PHP のセットアップ時にいつもやってる設定 | バシャログ。

/etc/php/php.ini

[PHP]

expose_php = Off

上記記事を読んでて、『ほー最近はセッションの保存先をデフォルトでmemcachedにするのが流行り?』などと思っていましたが、php.iniの設定でexpose_phpというのがどうも記憶に無かったので調べてみました。

expose_php boolean

PHP がサーバーにインストールされていることを全世界に晒し、PHP のバージョンも HTTP ヘッダに含めます (X-Powered-By: PHP/5.3.7 など)。 PHP のロゴの guid も公開されるので、PHP を有効にしたサイトの URL にそれを追加すると guids are also exposed, thus appending them to the URL of a PHP enabled site (例: » http://www.php.net/?=PHPE9568F34-D428-11d2-A769-00AA001ACF42) ロゴが表示されるようになります。この設定は phpinfo() の出力にも影響し、無効にすると PHP のロゴやクレジット情報が表示されなくなります。

ApacheのServerTokenのようなものですかね。こういうのは別にOffでも構わない、というか古いPHP使ってるのがバレるとマズいので(古いのを使ってる状況がそもそもマズいんだけど)隠しておくのが無難かもしれません。

私はPHPに関してはOffでいいと思うな。

PHPでのセキュリティ施策

PHPでのセキュリティ施策についてのメモ – Liner Note

これはいいまとめ。絵付きでわかりやすいです。
これを見て復習しておこう。。

セキュリティ上の問題でPHP 5.2.7の配布中止

セキュリティ上の問題で:PHP 5.2.7の配布中止、当面は現バージョンで – ITmedia エンタープライズ

magic_quotes_gpcが有効になっている設定でセキュリティ問題が発生することが分かった。PHP Groupは、この問題に対処するPHP 5.2.8がリリースされるまで、PHP 5.2.6を使うようユーザーに呼び掛けている。

ということらしいですので、5.2.7は使わない方向で。

問題:間違った自動ログイン処理

問題:間違った自動ログイン処理

セレンディピティはそんな実装になってたのですねえ。。
まあ最悪パスワードを平文で組み込むのはアレだよなあ、と思いました!

basic認証を特定のディレクトリだけ解除

わすれないように. – basic認証を特定のディレクトリだけ解除する方法

公開前の仮upサイトでbasic認証を使っていて、非公開エリアでphp等によるbasic認証を使用している場合 、.htaccessの認証とphpの認証で干渉し合って永久にログイン出来な

なるほど、確かにそうなりますよね。やったことないので想像つかなかった。

特定のディレクトリ下だけ、認証を解除するには、

Satisfy Any

と、解除したいディレクトリの.htaccessに書いておけばよいらしいです。ふむふむ。

PHP脆弱性リスト

PHP/脆弱性リスト/メモ – yohgaki’s wiki

修正できない(されない)脆弱性」「修正されていない脆弱性」を記載されたページです。
勉強になります!