找出可见的标题

信息安全 http 硬化
2021-08-14 02:07:32

我想找到一种简单的方法来找出我的网站上可见的标题。例如 PHP 版本、服务器等。

我环顾四周,似乎无法为像我这样的新手找到一个很好的解释。那么获取黑客可以用来对付我的所有标头的最简单方法是什么?宁愿在浏览器中看到它而不为此下载外部程序,但从我目前看到的情况来看,这似乎是必要的。

谁能指出我正确的方向?

3个回答

您现在可能正在使用其中一种可能的工具。Firefox 和 Chrome 都有开发人员工具,可让您查看发出的任何请求的请求标头和响应标头。

在 Firefox 中,转到Tools-> Web Developer->Network然后通过单击链接或刷新页面来发出新请求。

在 Chrome 中,转到菜单 -> Tools->Developer Tools并选择Network选项卡,然后通过单击链接或刷新页面来发出新请求。

要在任一浏览器中查看请求的标头,只需单击开发人员工具列表中的请求即可。

当然,浏览器可以工作,但我认为它们对于这项任务来说有点矫枉过正。我最喜欢的方法是使用 curl 命令行实用程序,它在几乎所有类 Unix 系统上都可用。使用该-I标志,它告诉 curl 发出 HTTP HEAD 请求并仅打印标头:

$> curl -I http://example.com/
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: max-age=604800
Content-Type: text/html
Date: Thu, 31 Oct 2013 15:49:18 GMT
Etag: "359670651"
Expires: Thu, 07 Nov 2013 15:49:18 GMT
Last-Modified: Fri, 09 Aug 2013 23:54:35 GMT
Server: ECS (sea/55ED)
X-Cache: HIT
x-ec-custom-error: 1
Content-Length: 1270

请注意,使用该-I标志会发出 HTTP HEAD 请求;如果您发出 HTTP GET 请求,服务器应该向您发送相同的标头,但配置错误或错误的标头可能不会(我只遇到过一次)。如果您怀疑是这种情况,请使用-i标志(小写而不是大写),它将执行 GET 请求并打印标题,然后是响应的正文。-i如果您需要执行另一种类型的 HTTP 请求,例如 POST,您还需要使用该标志。

当 curl 不可用,但 telnet 时:

$ telnet host 80
  HEAD / HTTP/1.0

  (<-2 newlines) 


  HTTP/1.1 302 Moved Temporarily
  Server: nginx
  Date: Wed, 06 Nov 2013 07:16:23 GMT
  Content-Type: text/html
  Content-Length: 154
  Connection: close
  Location: http://blah.org/
  X-Frame-Options: SAMEORIGIN