開発サーバーから実稼働サーバーへの移行中に、潜在的なブラウザーのセキュリティ上の問題に気付きました。
PHP ファイルには、単純なログイン フォームがあり、POST
それ自体に ing します。基本的な HTML は次のようになります。
<form action="http://mysite.com/includes/login/login.php" method="post">
<table>
<tr>
<td>
Username:
</td>
<td>
<input type="text" name="username" size="15" maxlength="64" tabindex=1 />
</td>
</tr>
<tr>
<td>
Password:
</td>
<td>
<input type="password" name="pword" size="15" maxlength="40" tabindex=2 />
</td>
</tr>
</table>
<p><input type="submit" name="submit" value="Login" tabindex=3 /></p>
<input type="hidden" name="submitted" value="TRUE" />
</form>
フォームアクションから最後の引用符を(偶然に)削除したときに気づきました(たとえば、<form action="http://mysite.com/includes/login/login.php method="post">
)フォームが「ページが見つかりません」にリダイレクトされるはずです。しかし、$_POST
データをデータとして追加しました$_GET
。そのため、ブラウザはログイン情報を次のように表示しました。
http://mysite.com/includes/login/login.php%20method=?username=theperson&pword=happyday&submit=Login&submitted=TRUE
IE と Chrome で同じ応答が得られます。これは大きなセキュリティ ホールですか? 開発者ツールで同様の情報を表示できることは知っていますが、ハッカーがこれを使用できるかどうか、またそれを保護するために何かすべきことがあるかどうか疑問に思っています。$_POST
また、データがデータに変換された理由を説明できる人はい$_GET
ますか?