【发布时间】:2017-05-19 17:09:30
【问题描述】:
这是我最近接受的一次采访中的一个问题。我回答说,据我所知,没有这样的方法。但我不确定。 有没有办法阻止 Apache Web 服务器响应 HTTP 请求? 我使用 PHP 作为首选语言,如果它有所作为的话。
【问题讨论】:
这是我最近接受的一次采访中的一个问题。我回答说,据我所知,没有这样的方法。但我不确定。 有没有办法阻止 Apache Web 服务器响应 HTTP 请求? 我使用 PHP 作为首选语言,如果它有所作为的话。
【问题讨论】:
为了更好地理解这个答案,您需要了解网络“OSI 7 层网络模型”。 (更多详情:https://en.wikipedia.org/wiki/OSI_model)
这表明 Apache 会在 PHP 代码开始执行之前“处理”一个请求。 (Apache 在第 5、6 和 7 层运行,PHP 通常在 apache 之上运行)。
因此,PHP 代码将无法“阻止”apache 响应 HTTP 请求。相反,您将希望完全阻止访问(防火墙[基于软件的硬件],在第 3/4 层运行),否则您将需要 apache 具有不处理请求的逻辑。
这实际上更像是一个安全问题,而不是编程问题。通常对于这个用例,您需要一个 apache 模块在 apache 内部做出关于处理请求的决定。一些很好的模块是:mod_evasive、mod_security
如果您有任何问题,请告诉我,谢谢!
【讨论】: