2009-05-24 8 views
0

私はlivehttpheaders plugin for Firefoxを見ていて、ログインページをテストすることに決めました。私はそこに表示されているパラメータに自分のログインとパスワードが含まれていることに気付きました。たとえば、livehttpheadersにログインとパスワードが表示されるのはなぜですか?それを防ぐにはどうしたらいいですか?

username=sarmenhb&password=thepassword&submit=Login 

平易な英語です。

他のサイトでは表示されません。

どうしたらいいですか?私はこれをセキュリティ上の欠陥とみなしています。ログインページは、ユーザーを検証してログインするだけです。すべてのフィールドはmysql_real_escape_string(該当する場合)で実行されます。

答えて

8

情報はクライアントからサーバーに到達する必要があります。セキュリティが心配な場合はSSLを使用してください。

JavascriptでMD5ハッシュを行っても、このは、ログインページにハッシュをサブミットするのは簡単ではなく、ハッシュは事実上パスワードになりますので、には役に立ちません。すべてのものは、それらまたはトランスポートが暗号化されるまでプレーンテキストです。 変数をPOSTするには、SSLを使用します。

下記のコメントから追加してください。他のサイトのヘッダーは、AJAX、POSTメソッドまたは他のクライアント側のメカニズムを使用して認証される可能性があるため、表示されないことがあります。

+0

しかし、別のサイトでhttpライブヘッダーを実行すると、なぜ私はプレーンな英語で同じ情報が表示されないのですか? –

+0

おそらくAJAXを使ってセッションクッキーを認証して取得するのでしょうか?サイトによって異なります。 –

+0

クライアント側ではパスワードをMD5だけではできませんが、サーバーはトークンを設定し、クライアントをMD5(トークン+パスワード)に強制することができます。これにより、送信されたパスワードのハッシュが毎回異なるようになり、誰かがMD5-> Plaintextデータベースでパスワードを検索するのを止めるような役割も果たします。 もちろん、SSLを使用することは受け入れられた修正です。 – Matthew

0

httpを使用してフォームを送信すると、表示されているように、フォームの内容が「クリア」でワイヤを介して送信されます。フォーム提出に資格情報が含まれている場合は、セキュリティ問題が発生します。あなたの選択肢の中

は以下のとおりです。

  • HTTPSを使用し、オーバーザワイヤ通信がオフ、ユーザーのOpenIDプロバイダへのhttpsの資格情報の管理を押し、ログインの
  • 使用OpenID、暗号化されているよう
  • フォームを送信する前にクライアント側のJavaScriptを使用して資格情報を暗号化する

後者のアプローチでは、彼らは非常に慎重ではない場合は、資格情報を暗号化するためのメカニズムは、javascriptを調べる気に誰もが完全に見えるためです。

1

これは、建物のコンシェルジュへのウェブベースのインターフェースを持つ大都市の特定の建物を思い出させます(私は他の場所に他の人がいると確信しています)。居住者はウェブサイト(http以上)にログオンし、不在時に修理などのためにアパートに入ることを許可されている人(特に)を指定することができます。私は、全部が誰かの甥によってプログラミングされたと確信しています。

good enoughとは言いますか?

1

livehttpheadersにはGETリクエストのURLが表示されますが、POSTリクエストのコンテンツは表示されないため、あなたのサイトでは表示されていません。

GETリクエストを使ってログイン情報を送信することは、POSTを送信する上でのわずかなセキュリティホールですが、GETリクエストのURLはさまざまな場所にログされることがよくあります。 Webサーバーのログを閲覧する権限を持つ全員が、CEOのパスワードを知る権限を持っていますか?

しかし、他の人が指摘しているように、ログイン用にhttps:を使用していない限り、GETまたはPOSTを使用するかどうかにかかわらず、データはプレーンテキストでネットワークを経由します。これはほとんど常に悪いことです。

まだ中間的な対策として、あなたのアプリがGETではなくPOSTとしてユーザー名とパスワードを送信するように変更すると、Webサーバーログにユーザー名とパスワードを保存することはなくなります。あなたが何かをやっているならば、ユーザー名とパスワードをサーバー上の十分に保護されていないログファイルに書き込むならば、有線経由でhttpsを使うことができます。

0

HTTPライブヘッダーにもPOSTリクエストが表示されます。 PostはGETと同じ方法でデータを送信しますが、唯一の違いは変数がGETのURL自体に渡されていることですが、POSTではHTTPヘッダーに追加されます。

セキュリティを強化するには、JSでの暗号化(パスワードまたはトークン+パスワードのみ)を使用します。しかし、MD5やその他のハッシュ技術の場合、虹のテーブルを使ってハッキングすることができます。

SSLは、高度なセキュリティを実現する唯一の方法です。

関連する問題