一、PHP如何获取指定URL的header信息
超级简单,就一行命令即可:
<?php print_r(get_headers('https://www.mdaima.com'));?> Array ( [0] => HTTP/1.1 403 Forbidden [1] => Date: Sun, 24 Jan 2021 05:09:48 GMT [2] => Server: Apache/2.4.46 (Win64) OpenSSL/1.1.1i PHP/7.3.26 [3] => Content-Length: 199 [4] => Connection: close [5] => Content-Type: text/html; charset=iso-8859-1 )
二、如何禁显示或隐藏header信息的方法
一共分为两步,第一步是将PHP.ini
文件中的expose_php = On
改为expose_php = Off
,重启Apache
后,再看一下
Array ( [0] => HTTP/1.1 403 Forbidden [1] => Date: Sun, 24 Jan 2021 05:10:50 GMT [2] => Server: Apache/2.4.46 (Win64) OpenSSL/1.1.1i [3] => Content-Length: 199 [4] => Connection: close [5] => Content-Type: text/html; charset=iso-8859-1 )
重启后,我们可以看到关于PHP
版本的信息已经不显示了,但是Apache
和服务名的信息还有显示,我们需要更彻底一点,这样才安全。我们需要在Apache的httpd.conf中增加两个指令,首先我们先确认一下Apache的httpd.conf文件中有没有如下两个配置指令,如果没有的话直接在配置文件最下面增加两行数据。
ServerTokens Prod ServerSignature Off
关于ServerTokens的指令配置参数看下面的说明:
ServerTokens Prod 显示“Server: Apache” ServerTokens Major 显示 “Server: Apache/2″ ServerTokens Minor 显示“Server: Apache/2.2″ ServerTokens Min 显示“Server: Apache/2.2.17″ ServerTokens OS 显示 “Server: Apache/2.2.17 (Unix)” ServerTokens Full 显示 “Server: Apache/2.2.17 (Unix) PHP/5.3.5″ (如果未指定任何的值,这个是默认的返回信息)
关于ServerSignature On的说明:
设置为On时,当有用户请求访问我们网站的网页不存在时,服务器将有错误提示显示出来,错误提示将在页面的最下面将包含服务器的名字、Apache
的版本等相关都显示信息,这将给一些不安好心的人提供一些便利而利用已知的版本漏洞。所以我们最好不要显示这些信息,我们可以将这个参数设置为Off
。
通过修改这两个参数配置文件,最终获取header
的效果如下:
Array ( [0] => HTTP/1.1 403 Forbidden [1] => Date: Sun, 24 Jan 2021 04:54:49 GMT [2] => Server: Apache [3] => Content-Length: 258 [4] => Connection: close [5] => Content-Type: text/html; charset=iso-8859-1 )
Atas ialah kandungan terperinci PHP如何获取指定网址的header头信息及隐藏关闭的方法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!