12


3

Webサイトが200ではなく302を返す

まあこれは私を驚かせます。 Httpヘッダーチェックツールを使用して、Webページのヘッダーをチェックし、何を推測しました。 すべてのリクエストで、応答は200ではなく302でした。

domain.con
www.domain.con
http://www.domain.con

だから、私はここに何かが欠けていますか? リダイレクトは一切行いませんでした。

それで、私のウェブサイトはどこでf#$%をリダイレクトしますか? セキュリティホールはありますか?

更新:グーグルがhttp://www.loriswebs.com/hijacking_web_pages.html[this one]を見つけたとき

6 Answer


7


domain.com`は www.domain.com`とは異なります-これはリダイレクトです。


6


これは、.net / IISがwww.domain.comまたはdomain.comをwww.domain.com/default.aspxにリダイレクトするため、302のヘッダーを取得してから200のヘッダーを取得するためです。 これは設計によるものですが、非常に紛らわしいと思います。


4


たぶんこれの場合:

302見つかりました

これは最も一般的なリダイレクトコードですが、標準と矛盾する産業慣行の例でもあります。 HTTP / 1.0仕様(RFC 1945)では、クライアントが一時的なリダイレクトを実行する必要がありました(元の記述句は「Moved Temporarily」でした)が、一般的なブラウザは302 See Seeの機能を実装しました。 そのため、HTTP / 1.1では、2つの動作を区別するためにステータスコード303と307が追加されました。 ただし、Webアプリケーションとフレームワークの大部分は、まだ302ステータスコードを303のように使用しています。

303 See Other(HTTP / 1.1以降)

要求に対する応答は、GETメソッドを使用して別のURIで見つけることができます。 PUTへの応答として受信した場合、サーバーがデータを受信したと想定し、別のGETメッセージでリダイレクトを発行する必要があります。


0


URLの最後に最後のスラッシュを追加するのを忘れた可能性があります。 ほとんどのWebサーバーは、スラッシュを含む「標準的な」場所にリダイレクトします。 スラッシュを含めると、探している応答を得ることができます。


0


フォーム認証を使用していますか? ログインページは、デフォルトページとは異なるページですauth.aspx? この場合、常に302コードが取得され、ページはログインページにリダイレクトされます。


0


ASP.Netでは、Response.RedirectおよびServer.Transferを使用してリダイレクトできます。 server.Transferを使用すると、ステータスコード302は決してヒットせず、200を直接ヒットします。 Response.Redirectを使用すると、応答として302から200に渡されます。 これは往復にすぎません。