スポンサーサイト

 スポンサードリンク

  1. ブックマークに追加する
  1. ブログランキングFC2
  1. 2008/10/12 (日)|

PHPセキュリティ対策の具体例

HTMLフォームからの入力データをPHPで処理してHTML出力する過程で施すべき、基本的なセキュリティ対策をまとめています。

前提

  • (1)Javascriptが入力された場合は除去
  • (2)SQLインジェクション対策
  • (3)出力時にHTMLタグは実体参照へ変換する
  • (4)入力時の改行は、改行コード<br />へ変換して出力

HTMLフォームの入力は$inputに格納されているものとします。

(1)Javascriptの除去

preg_replace('/javascript/i','',preg_replace('/[\x00-\x20\x22\x27]/','',$input));

(2)SQLインジェクション対策

$input = addslashes($input);
//DB処理

詳しくはSQLインジェクションを参考にしてください。

HTMLタグを実体参照へ

$output = htmlspecialchars($output)

改行を<br />へ

$output = nl2br($output)

 スポンサードリンク

  1. ブックマークに追加する
  1. ブログランキングFC2
  1. 2007/09/24 (月)|
  2. [PHP]セキュリティ
  3. | トラックバック:0
  4. | コメント:0

外部コマンド攻撃

外部コマンド実行攻撃とはプログラム実行系関数(system,exec,passthruなど)の引数として外部リクエストを利用する場合に、不正なコマンドを混ぜて送信され、サーバを不正に操作されることです。

system関数
外部プログラムを実行し、出力を表示する。
exec関数
外部コマンドを実行する。
passhru関数
引数で指定されたコマンドを実行する。

外部コマンド実行攻撃は非常に危険度が高いため、外部リクエストを何らかの形で関数に渡す設計は行うべきではない。escapshellcmd 関数での対策は漏れが発生する可能性があるので、どうしても利用する場合は外部リクエストをホワイトリストによって制限する必要がある。

 スポンサードリンク

  1. ブックマークに追加する
  1. ブログランキングFC2
  1. 2007/07/10 (火)|
  2. [PHP]セキュリティ
  3. | トラックバック:0
  4. | コメント:7

PHPセキュリティ関連リンク集

PHPのセキュリティー対策として参考になるサイトのリンク集です。

総合

クロス・サイト・スクリプティング

クロス・サイト・リクエスト・フォージェリ

 スポンサードリンク

  1. ブックマークに追加する
  1. ブログランキングFC2
  1. 2007/07/10 (火)|
  2. [PHP]セキュリティ
  3. | トラックバック:0
  4. | コメント:0

次のページ»