Heim > Artikel > Backend-Entwicklung > Wie erhält PHP die Header-Informationen einer bestimmten URL und verbirgt und schließt sie?
获 I. Wie PHP das Design der angegebenen URL-Header-Informationen erhält
super einfach, nur eine Befehlszeile:
<?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 )2. Wie man die Header-Informationen in insgesamt zwei Schritten verbietet oder ausblendet ist,
expose_php = On
in der Datei PHP.ini
in expose_php = Off
zu ändern. Nach dem Neustart von Apache
Noch ein BlickArray ( [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 )Nach dem Neustart können wir sehen, dass die Informationen zur
PHP
-Version nicht mehr angezeigt werden, die Informationen zu Apache
und der Dienstname jedoch weiterhin angezeigt werden. Wir müssen gründlicher vorgehen, dann wird es sicherer. Wir müssen zwei Anweisungen zur httpd.conf-Datei von Apache hinzufügen. Überprüfen Sie zunächst, ob die folgenden zwei Konfigurationsanweisungen in der httpd.conf-Datei von Apache vorhanden sind. Wenn nicht, fügen Sie direkt zwei Datenzeilen am Ende der Konfigurationsdatei hinzu. ServerTokens Prod ServerSignature Off
Siehe die Anweisungen unten für die Befehlskonfigurationsparameter von ServerTokens: PHP.ini
文件中的expose_php = On
改为expose_php = Off
,重启Apache
后,再看一下
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″ (如果未指定任何的值,这个是默认的返回信息)
重启后,我们可以看到关于PHP
版本的信息已经不显示了,但是Apache
和服务名的信息还有显示,我们需要更彻底一点,这样才安全。我们需要在Apache的httpd.conf中增加两个指令,首先我们先确认一下Apache的httpd.conf文件中有没有如下两个配置指令,如果没有的话直接在配置文件最下面增加两行数据。
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 )
关于ServerTokens的指令配置参数看下面的说明:
rrreee关于ServerSignature On的说明:
设置为On时,当有用户请求访问我们网站的网页不存在时,服务器将有错误提示显示出来,错误提示将在页面的最下面将包含服务器的名字、Apache
的版本等相关都显示信息,这将给一些不安好心的人提供一些便利而利用已知的版本漏洞。所以我们最好不要显示这些信息,我们可以将这个参数设置为Off
。
通过修改这两个参数配置文件,最终获取header
Anweisungen zu ServerSignature Ein:
Wenn auf Ein gesetzt, wenn ein Benutzer den Zugriff auf die Webseite unserer Website anfordert Wenn der Server nicht vorhanden ist, wird eine Fehlermeldung angezeigt, die den Namen des Servers, die Version von Apache
und andere verwandte Informationen am Ende der Seite enthält an einige unruhige Leute und nutzen Sie bekannte Versionsschwachstellen aus. Damit wir diese Informationen besser nicht anzeigen, können wir diesen Parameter auf Aus
setzen.
header
wie folgt: 🎜rrreee🎜Empfohlen: „🎜php-Video-Tutorial🎜“ „🎜php-Tutorial🎜“🎜Das obige ist der detaillierte Inhalt vonWie erhält PHP die Header-Informationen einer bestimmten URL und verbirgt und schließt sie?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!