Heim  >  Artikel  >  Backend-Entwicklung  >  Was soll ich tun, wenn phpinfo() die PHP-Code-Sicherheit nicht verlassen kann?

Was soll ich tun, wenn phpinfo() die PHP-Code-Sicherheit nicht verlassen kann?

青灯夜游
青灯夜游Original
2021-06-02 15:06:123034Durchsuche

php-Code-Sicherheitslösung phpinfo() kann nicht freigegeben werden: Öffnen Sie zuerst die Datei php.ini, suchen Sie das Element „short_open_tag“ und setzen Sie es auf „short_open_tag = On“; starten Sie dann Apache neu und laden Sie den Dienst php.ini neu.

Was soll ich tun, wenn phpinfo() die PHP-Code-Sicherheit nicht verlassen kann?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, PHP-Version 7.1, DELL G3-Computer

1. Problembeschreibung

Ich habe eine PHP-Datei test.php geschrieben, der Code lautet wie folgt :

<?php
    echo phpinfo();
?>

Browse Der Server hat darauf zugegriffen, aber NULL zurückgegeben.

2. Problemort und Lösung

Nach der Online-Überprüfung ist das Problem, auf das die meisten Leute stoßen, tatsächlich wie folgt:

<?
    echo phpinfo();
?>

Lösung:

Diese Art In diesem Fall , Sie müssen die php.ini-Datei öffnen, „short_open_tag“ finden, die Zeile „short_open_tag = Off“ auskommentieren und dann „short_open_tag = On“ öffnen. Starten Sie dann Apache neu und laden Sie den php.ini-Dienst neu.

Hier gibt es zwei weitere Fragen: Wie kann man herausfinden, welche php.ini-Datei geladen wird, wenn PHP ausgeführt wird? Sie können sie in der Befehlszeile ausführen: php --ini, um die php.ini-Datei zu finden So laden Sie die PHP-INI-Datei neu. Wenn PHP-FPM auf Ihrem Server aktiviert ist, ist ein Neustart von PHP-FPM im Allgemeinen in Ordnung. Der Befehl lautet: service php-fmp restart Wenn der PHP-FPM-Dienst (frühere Version von php) ist nicht aktiviert. Im Allgemeinen ist es in Ordnung, den Apache-Dienst neu zu starten. Der Befehl lautet service httpd restart.

Nach Abschluss der oben genannten Schritte werden die Probleme, auf die die meisten Menschen stoßen, gelöst, aber das sind die Probleme anderer Leute, nicht meine oder meine ...

Ich habe keine andere Wahl, als das Gefühl zu haben, dass dieses Ding mit der PHP-Konfiguration zusammenhängen muss hängt damit zusammen, also bin ich auf die offizielle Website gegangen und habe mir das php.ini-Dokument angesehen. Die folgende Konfiguration lautet wie folgt:

  disable_functions string

Mit diesem Befehl können Sie bestimmte Funktionen aus Sicherheitsgründen deaktivieren. Akzeptiert eine durch Kommas getrennte Liste von Funktionsnamen als Argumente. „disable_functions“ sind vom abgesicherten Modus nicht betroffen. Diese Direktive kann nur in php.ini gesetzt werden. Es kann beispielsweise nicht in httpd.conf festgelegt werden. Dies bedeutet, dass einige Methoden in php.ini konfiguriert werden können, diese Methoden jedoch nicht aufgerufen werden können. Öffnen Sie php.ini und finden Sie diese Konfiguration. Die Methode ist wie folgt deaktiviert:

disable_functions = phpinfo,system,proc_open,proc_close,show_source,popen,pclose

Plötzlich wurde mir klar, dass ich die phpinfo()-Methode vorübergehend aus unlock_functions gelöscht, die php.ini-Datei neu geladen und dann erneut über den Browser auf test.php zugegriffen habe und das Problem wurde gelöst. Ich möchte meine Freunde jedoch daran erinnern, dass es sich bei phpinfo() um sehr vertrauliche Informationen handelt. Es ist normalerweise am besten, sie dem Client nicht zugänglich zu machen, deshalb habe ich sie nach dem Test schnell deaktiviert.

Empfohlenes Lernen: „
PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn phpinfo() die PHP-Code-Sicherheit nicht verlassen kann?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn