2012-04-27 26 views
6

私はウェブサイトのURLでいっぱいのデータベースを持っています、プライマリキーは、$_SERVER["HTTP_HOST"]のウェブサイトです。

ユーザーがナビゲート...がwww.my-epic-example-url.comを言うことができます、それはデータベースに接続し、そのウェブサイトの$_SERVER["HTTP_HOST"]を使用すると、そのWebサイトを参照するすべてのデータを取り出します!

私が知りたいことは、どれくらい安全ですか$_SERVER["HTTP_HOST"]

外部から変更することはできますか?

私は$ _SERVERを使用しているとき、それは安全ではないので注意してくださいと言って(それがあった場所を覚えてカント)しばらく前にarticalを読んでいるので、私は尋ねる唯一の理由は...

はこの本当ですか?

+2

[どの$ _SERVER変数が安全ですか?](http://stackoverflow.com/questions/6474783/which-server-variables-are-safe) – mellamokb

+0

これをデュプリとして閉じないでください。 HTTP_HOSTの詳細な説明については、こちらを参照してください。[http://stackoverflow.com/questions/6474783/which-server-variables-are-safe] 。 – deceze

答えて

13

$_SERVER["HTTP_HOST"]は、クライアントから送信されたHTTP Hostヘッダーです。これにより、このヘッダは一般的にになります。

しかし、あなたはWebサーバが順番にHTTP HostヘッダーによってトリガーされるのVirtualHostの設定に基づいて実行するスクリプトを決定する典型的な仮想ホスト設定である場合、スクリプトない限り実行されませはずです既知のホワイトリストの値がそのヘッダーで受信されました。

ウェブサーバーがHostヘッダーを気にせず、すべての要求に対して特定のスクリプトを実行する場合、この値は絶対に何でもかまいません。

+0

あなたはこの欺瞞の総合的な答えにこれを加えなければなりません。そこにVirtualHostの部分を具体的に説明していません。 –

+3

完了しました。この答えはもう一方から参照されました。 :) – deceze

+0

これは、HTTPリクエストで絶対URIを使用するような、VirtualHostの制限をバイパスする既知の方法であることに注意してください。これは、フリー再生のホストヘッダーにつながります。したがって、*一般的に安全でない*は非常に真実です。 – regilero

関連する問題