Heim  >  Artikel  >  Backend-Entwicklung  >  Wie erhält PHP die Header-Informationen einer bestimmten URL und verbirgt und schließt sie?

Wie erhält PHP die Header-Informationen einer bestimmten URL und verbirgt und schließt sie?

autoload
autoloadnach vorne
2021-03-24 15:10:343511Durchsuche

获 I. Wie PHP das Design der angegebenen URL-Header-Informationen erhält

super einfach, nur eine Befehlszeile:

<?php print_r(get_headers(&#39;https://www.mdaima.com&#39;));?>
 
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 Blick

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
)
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

rrreee

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.

🎜         Durch Ändern dieser beiden Parameterkonfigurationsdateien ist der endgültige Effekt des Erhaltens von 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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:码代码-李雷博客. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen