ワイルドカードサブドメインを使用して各ユーザーにページusername.domain.comを付与しています。
ユーザー名はサインアップ時に適切に消毒されています。
この質問の目的を簡潔にするため、すべてのリクエストに対して実行される単一のPHPスクリプトがあるとします。 ...
$domain_components = explode('.', $_SERVER['SERVER_NAME']);
...次に、tld、プライマリドメインとサブドメインをポップします。
質問は、$_SERVER['SERVER_NAME']
変数、特にドメインコンポーネントの内容を潜在的に敵対的なものとして扱う必要がありますか?直感的には、PHPとApacheがこれまでに自分のコードに到達する前にできることとして、良い仕事をしていなければならないと思います(そして、this answerは変数がサーバーの制御下にあるので確認しているようですが)私は何かを見過ごすわけではない。
既知の攻撃については、$_SERVER['SERVER_NAME']
で知りますか?
(私はPHP 5.3.9とApache 2.2.3を使用しています。)
ほとんどがそうです。 '$ _SERVER ['HTTP_USER_AGENT']'のようなものは、クライアントによって変更可能であることに注意してください。 – ceejayoz
ありがとうございます。 ceejayozが指摘するように、これはクライアント制御下にある多くの$ _SERVER変数では当てはまりません。質問にリンクした答えはこれをきれいに整理しています。 http://stackoverflow.com/a/6474936/123749 – Greg