0

開発サーバーから実稼働サーバーへの移行中に、潜在的なブラウザーのセキュリティ上の問題に気付きました。

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ますか?

4

3 に答える 3

3

ここでの回答は 1 つだけです。おそらく最後"の要素を欠いているために<form>要素が無効になり、ブラウザがデフォルトで GET リクエストを使用したため、変換されました。

于 2012-11-30T21:18:07.460 に答える
2

短い答え:いいえ。心配する必要はありません。

長い答え?

あなたが話している穴は、ウェブサイト自体のコードエラーですよね? その場合、コードにバグを残しておくとセキュリティ ホールになるだけです。

ハッカーは Web サイトの HTML コードを変更してこの不具合を作成することはできません。彼らができる唯一のことは、html コードをダウンロードして、新しい html ドキュメントを作成し、それを変更することです。その場合、バグのある HTML は自分のコンピューターにのみ存在し、本番サイトには存在しないため、他のユーザーには影響がありません。

ハッカーがWeb サーバー上のファイルを変更できる場合、セキュリティ ホールは別の場所にあり、この質問の範囲外です。

于 2012-11-30T21:22:11.560 に答える
1

フォームが次のようになっている場合:

<form action="http://mysite.com/includes/login/login.php method="post">

それはこれと同等です:

<form action="http://mysite.com/includes/login/login.php method=" post">

これにより、次の 2 つの属性を持つフォームが生成されます。

  • action:http://mysite.com/includes/login/login.php method=
  • post":

メソッド属性が指定されていないため、メソッド GET が暗示されます。

ここでの唯一のセキュリティ上の考慮事項は、セキュリティで保護されていないチャネルを介してログイン資格情報を送信しているという事実を除けば、機密データが後でプロキシおよびサーバー ログに表示される可能性がある URL を介して送信されることです。

于 2012-11-30T21:58:39.653 に答える