Web サービス アプリケーションのサーバーの詳細を取得しようとしています。
<tr>
<td style="text-align: right">Remote Host Name:</td>
<td><%= request.getRemoteHost() + ":" + request.getRemotePort()%></td>
</tr>
最近ベラコードを実行しましたが、getRemoteHost()
それを防ぐ方法について何か提案がありますか?
これはおそらく、 < script > ... という名前のホストがある場合、関数は単純にそれをエコーすることを意味します。
ホスト名に有効な文字のみを許可して、出力をフィルタリングする必要があります。または、エコーする前に単純に html エンコードします。
原則として、ユーザー入力などの信頼できないソースからのすべての入力を検証する必要があります。
多くの場合、環境変数と http ヘッダーは安全であるかのように扱われますが、それらを任意に変更することは比較的簡単です。
ホスト名情報がどこから来ているのか自問してください。DNS サーバーの場合、攻撃者がそのような偽のホスト名でキャッシュを汚染する可能性はほとんどありません。情報が http ヘッダーから取得される場合は、非常に簡単です。