5

Webブラウザで無害化せずにアクセスログを閲覧するのは危険なことですか?

アクセスログを記録したり、webブラウザで閲覧したりしようと考えているのですが、攻撃者が自分のリモートホストやユーザーエージェントなどを改変した場合、攻撃を受けることはありますか?

リモートホストやユーザーエージェントなどに攻撃コードを挿入することによって。

Webブラウザでアクセスログファイルを開く前に、htmlspecialcharでサニタイズする必要がありますか?

つまり、攻撃者がリモートホストまたはユーザーエージェントまたは何らかのウェアに攻撃コードを挿入すると、Webブラウザーを介してアクセスログが表示され、PCがそのコードに影響を受けます.

4

3 に答える 3

5

はい、これは危険です。

たとえば、悪意のあるユーザーは次のようなリクエストを送信できます。

GET /<script src="http://www.evilsite.com/malicious.js"></script> HTTP/1.1
Host: www.example.com
Connection: close
User-Agent: <script src="http://www.evilsite.com/malicious.js"></script>

そして、悪意のある JavaScript でビュー ページを侵害します。

おそらく自分のサイトでログを表示しているので、管理者権限を持つアカウントとしてログインします。悪意のある JavaScript を使用すると、攻撃者はセッション Cookie を盗み、セッションを乗っ取り、ログイン中にできるすべてのことを完了できます.

したがって、結論として、管理者アカウントが危険にさらされるのを好まない限り、アクセス ログ ページを確実に回避する必要があります。

于 2009-06-26T06:05:33.687 に答える
4

理論的には可能です。そうです。そのように考える正しい考え方を持っていることを称賛する必要があります。制御されていない入力を Web ブラウザーに表示する前にサニタイズすることは、常に良い考えです。

を通じてログ出力を実行しますhtmlspecialchars()

于 2009-06-26T05:58:20.547 に答える
3

おそらく、出力に HTML フォーマットが必要なため、ログ データをサニタイズ/エンコードする必要があります。ただし、引数のために: 出力を text/plain として送信する場合、クライアントは html/javascript を解析することは想定されていません。
たとえば、の出力

<?php
header('Content-type: text/plain; charset=utf-8');
echo '<script>alert(document.URL);</script>';
として表示されます
<script>alert(document.URL);</script>
(少なくともFF3、IE8、オペラ、サファリでは)。

于 2009-06-26T07:02:51.310 に答える