忍者ブログ
[15] [14] [13] [12] [11] [10]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

脆弱性のあるログインフォーム の解説です。ソースコードをまだ見られていない方は、まず、脆弱性のあるログインフォーム をご覧ください。


この脆弱性を取り除くには、

<form method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">

の部分は、以下のようにするのがよいと思います。

<form method="POST" action="">

あるいは、$_SERVER['PHP_SELF'] を htmlspecialchars() でエスケープ処理する方法もあるかと思います。

<form method="POST" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES, 'UTF-8'); ?>">


また、以下のユーザ名の入力値を表示する部分は、

<input type="text" name="username" value="<?php echo $_POST['username']; ?>

以下のように、htmlspecialchars() でエスケープ処理します。

<input type="text" name="username" value="<?php echo htmlspecialchars($_POST['username'], ENT_QUOTES, 'UTF-8'); ?>

htmlspecialchars() でエスケープ処理する場合は、必ず、第2引数に ENT_QUOTES を指定しましょう。デフォルトでは、シングルクオート(')がエスケープされませんので、シングルクオートでインジェクションできるケースでは脆弱性が残る可能性があります。
PR

コメント
無題
はじめまして!
自分もこれから「PHP」を勉強するので
更新たのしみにしてます!
【2009/02/18 01:29】 NAME[ryu] WEBLINK[URL] EDIT[]


コメントフォーム
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字


トラックバック
この記事にトラックバックする:


忍者ブログ [PR]
カレンダー
04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
最新コメント
[02/18 ryu]
[11/21 ぴろ]
[11/07 NONAME]
[11/02 NONAME]
[11/02 NONAME]
最新トラックバック
プロフィール
HN:
Kenji
性別:
非公開
ブログ内検索