【问题标题】:Is it possible to monitor server response codes (http status codes) from PHP, and how would it be done?是否可以通过 PHP 监控服务器响应代码(http 状态代码),如何实现?
【发布时间】:2013-06-17 17:53:42
【问题描述】:

服务器响应代码/http 状态代码(101、200、404 等)应在用户和服务器之间的每次交互的标头中发送。如何监控来自 PHP 的代码,以便如果发送错误代码,它可以链接到 Web 应用程序记录的用户操作,并做出适当的响应,例如锁定或重定向用户重复 403(禁止)通过尝试访问服务器上不应该访问的内容来编写代码?

【问题讨论】:

  • access_log?我想你可以修改php.ini文件并添加auto_append_file = mylog.php,然后,你可以保存找到的响应代码。
  • 强调更多的是服务器的即时响应,部分作为入侵检测的方法。理想情况下,它还将错误链接到 IP 地址。

标签: php security error-handling http-status-codes


【解决方案1】:

查看http_response_code:

*如果不传递任何参数,则 http_response_code 将获取当前状态码。如果您传递一个参数,它将设置响应代码。*

http://php.net/manual/en/function.http-response-code.php

【讨论】:

    【解决方案2】:

    基本上没有,因为标头是由网络服务器发送的 PHP 文件被解析并生成“真实”输出之前。您可以使用方法http_response_code(),但请考虑一下:如果您想访问您的www-data 没有读取权限的文件夹,您将获得403 Forbidden。这是网络服务器的消息,PHP 甚至从未被触及(因为对于网络服务器来说,它甚至都不存在)。

    如果您专门使用自定义 ErrorDocument 配置或通过 PHP 文件发送响应代码,则可以捕获这些事件的唯一方法:

    if ( !$something )
        header("HTTP/1.1 403 Forbidden");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-19
      • 2011-08-31
      • 1970-01-01
      • 2021-01-06
      • 2021-09-05
      • 1970-01-01
      • 2012-12-13
      • 1970-01-01
      相关资源
      最近更新 更多