php - 为什么以及何时从 HTTP 响应中省略服务器 header ?

标签 php apache http ubuntu webserver

我可能会为 abc.com 的项目工作托管在 xyz.abc.com 下.当我访问 xyz.abc.com ,响应包含 server header ,我可以知道它是在 Ubuntu OS ( Apache/2.2.22 (Ubuntu) ) 上运行的 Apache2。但是当我访问 abc.com并在上面导航,没有server任何响应中的 header 。

关于这种行为的任何解释?

server是否可以通过 Apache 配置或编程控制 header 的存在(例如,在 PHP 中可以设置 last-modified)?如果是通过指令,这意味着不同的域有不同的 Apache 实例(一个配置为返回 header ,另一个配置为隐藏它)?

或者可以将 Ubuntu/Apache2 用于 xyz.abc.com和完全不同的技术栈 abc.com ?这种技术的名称是什么?

你能解释一下新手的不同可能性吗?先感谢您。

最佳答案

关于 httpd,没有选项可以通过官方方式删除服务器响应 header 。

官方上你可以通过配置做的最多的是设置这些指令:

ServerTokens Prod
ServerSignature off

这样,您的服务器响应 header 将只显示“Apache”。这是最推荐的做法。

虽然如果你有一些偏执的审计坚持让你完全删除标题,你有一些“第三方”方法,最着名的,至少对我来说,是使用“mod_security”。

还有第三种选择,即自己修改 Apache HTTPD 源代码并编译它,这样它就不会添加响应头,但我怀疑有人会建议你这样做。

在任何情况下并回答您的主要问题,删除该 header 并不会真正为您的服务器增加任何安全性,因此确实没有理由删除它。

关于php - 为什么以及何时从 HTTP 响应中省略服务器 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40266032/

相关文章:

javascript - AJAX获取当前网站域名

php - 如何从 Stacey App 中的逗号分隔列表值创建链接标签?

apache - 如何禁用所有 apache 虚拟主机?

apache - 为什么我会收到 Apache Proxy 503 错误?

jquery - nginx 代理从 https 到 http 获取阻止加载混合事件内容错误

.net - 从旧引用更改方法

phpMyAdmin 不显示表格

php - GET 参数是否可搜索引擎索引?

php - 如何在 PHP 中重写 URL?

http - Moovweb:从 HTTP 迁移到 HTTPS 时出现隐私错误