国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Heim php教程 PHP開(kāi)發(fā) Konfigurieren Sie einige serverseitige Funktionen von PHP, um die PHP-Sicherheit zu verbessern

Konfigurieren Sie einige serverseitige Funktionen von PHP, um die PHP-Sicherheit zu verbessern

Dec 05, 2016 am 11:19 AM
linux nosql php php+mysql PHP-Server Webserver Datenbankserver

Shaun Clowes und rfp haben zuvor ausführlich die Probleme vorgestellt, auf die PHP- und CGI-Programme w?hrend des Programmierprozesses sto?en, und wie man das System durch Anwendungsschwachstellen durchbrechen kann. In diesem Artikel werden wir einige PHP-Kenntnisse durchgehen
Serverseitige Funktionen zur Konfiguration zur Verbesserung der PHP-Sicherheit. Beim Schreiben von CGI-Skripten müssen wir auf verschiedene Sicherheitsaspekte achten und Benutzereingaben streng filtern. Aber wie k?nnen wir am Ufer entlang gehen, ohne unsere Schuhe nass zu machen, und wie k?nnen wir Sesamsamen essen
, ohne Sesamsamen zu verlieren? Es gab schwerwiegende Fehler, selbst in bekannten Programmen wie phpnuke und phpMyAdmin. Problem, ganz zu schweigen von den Skripten, die von Gangstern wie mir geschrieben wurden. Wir gehen also davon aus, dass es, wie zum Beispiel vor einiger Zeit, ein ernstes Problem mit dem PHP-Skript gegeben hat Es gibt ein gro?es Problem damit, dass phpnuke PHP-Skripte hochladen kann. Wie k?nnen wir den Server konfigurieren, um zu verhindern, dass das Skript das System durchbricht, wenn ein solches Problem auftritt?

1. Achten Sie beim Kompilieren auf das Patchen bekannter Schwachstellen

Ab 4.0.5 hat die Mail-Funktion von PHP einen fünften Parameter hinzugefügt, der jedoch nicht ordnungsgem?? gefiltert wird, sodass PHP-Anwendungen dies k?nnen Durchbrechen Sie die Einschr?nkungen des Safe_Mode und führen Sie Befehle aus. Wenn Sie also 4.0.5 und 4.0.6 verwenden
Vor der Kompilierung müssen wir die Datei ext/standard/mail.c im PHP-Quellcodepaket ?ndern, um den fünften Parameter der Mail-Funktion zu deaktivieren oder Shell-Zeichen zu filtern. In Zeile 152 der Datei mail.c ist dies die folgende Zeile:
if (extra_cmd != NULL) {
gefolgt von extra_cmd=NULL; oder extra_cmd = php_escape_shell_cmd(extra_cmd); und dann kompilieren php, dann haben wir die Schwachstelle gepatcht.

2. ?ndern Sie die php.ini-Konfigurationsdatei

Nehmen Sie ?nderungen basierend auf der php.ini-dist der PHP-Distributionsversion vor.
1)Fehlerbehandlung und -protokollierung
Im Bereich Fehlerbehandlung und -protokollierung k?nnen Sie einige Einstellungen vornehmen. Zuerst finden Sie:
display_errors = On
Standardm??ig schaltet PHP die Fehlermeldungsanzeige ein. Wir haben es ge?ndert in:
display_errors = Off

Nach dem Ausschalten der Fehleranzeige wird die PHP-Funktion aktiviert Ausführungsfehler Die Informationen werden dem Benutzer nicht mehr angezeigt, was Angreifer bis zu einem gewissen Grad daran hindert, den physischen Standort des Skripts und einige andere nützliche Informationen aus der Fehlermeldung zu erfahren, was zumindest bestimmte Hindernisse für die Black-Box-Erkennung des Angreifers schafft . Diese Fehlermeldungen k?nnen für uns selbst nützlich sein. Wir k?nnen sie in die angegebene Datei schreiben lassen und dann Folgendes ?ndern:
log_errors = Off
in:
log_errors = On

und das angegebene Datei, suchen Sie die folgende Zeile:
;error_log = Dateiname
Entfernen Sie den vorherigen; Kommentar und ?ndern Sie den Dateinamen in die angegebene Datei, z. B.
/usr/local/apache/logs/php_error.log

error_log = /usr/local/apache/logs/php_error.log
Auf diese Weise werden alle Fehler in die Datei php_error.log geschrieben.

2)Abgesicherter Modus

Die Funktion ?safe_mode“ von PHP schr?nkt viele Funktionen ein oder deaktiviert sie, wodurch PHP-Sicherheitsprobleme weitgehend gel?st werden k?nnen. Suchen Sie im Abschnitt ?Abgesicherter Modus“ nach:
safe_mode = Off
und ?ndern Sie es in:
safe_mode = On

Dadurch wird die Funktion ?safe_mode“ aktiviert. Einige Funktionen wie ?shell_exec()“ und ?die Systembefehle ausführen k?nnen, sind verboten, und einige andere Ausführungsfunktionen wie: exec()“, system(), passthru(), popen() ist auf die Ausführung von Programmen in dem durch ?safe_mode_exec_dir“ angegebenen Verzeichnis beschr?nkt. Wenn Sie wirklich einige Befehle oder Programme ausführen m?chten, finden Sie Folgendes:
safe_mode_exec_dir =
Geben Sie den Pfad des auszuführenden Programms an, z. B.:
safe_mode_exec_dir = /usr/local/php/exec

Kopieren Sie dann das Programm, das Sie verwenden m?chten, in das Verzeichnis /usr/local/php/exec, damit die eingeschr?nkten Funktionen wie oben das Programm weiterhin im Verzeichnis ausführen k?nnen.

Ausführliche Informationen zu eingeschr?nkten Funktionen im abgesicherten Modus finden Sie in den Anweisungen der Haupt-PHP-Site:
[url]http://www.php.net/manual/en/features.safe- mode.php[/url]

3) deaktivieren_funktionen

Wenn Sie sich über die Sch?dlichkeit einiger Funktionen nicht im Klaren sind und diese nicht verwenden, deaktivieren Sie diese Funktionen einfach. Suchen Sie die folgende Zeile:
disable_functions =
Fügen Sie die zu deaktivierende Funktion nach ?=" hinzu und trennen Sie mehrere Funktionen durch ",".

3. ?ndern Sie httpd.conf

Wenn Sie Ihrem PHP-Skriptprogramm nur erlauben, im Webverzeichnis zu arbeiten, k?nnen Sie auch die Datei httpd.conf ?ndern, um den Operationspfad von PHP einzuschr?nken. Wenn Ihr Webverzeichnis beispielsweise /usr/local/apache/htdocs ist, fügen Sie diese Zeilen zu
httpd.conf hinzu:

php_admin_value open_basedir /usr/local/apache/htdocs Fehler zeigt an, dass es ge?ffnet ist

l?st einen Fehler wie diesen aus:
Warnung: open_basedir-Einschr?nkung in Kraft. Datei befindet sich im falschen Verzeichnis in /usr/local/apache/htdocs/open.php in Zeile 4 und so weiter.

4. Kompilieren Sie den PHP-Code

Zend hat einen gro?en Beitrag zu PHP geleistet. Die PHP4-Engine verwendet Zend und hat auch viele PHP-Erweiterungskomponenten wie ZendOptimizer und ZendEncode entwickelt. Der Optimierer ZendOptimizer muss nur unter [url]http://www.zend.com[/url] registriert werden, um kostenlos zu sein?... Die gerade 鴝 gemischte Bartkante ist im Süden immer niedrig?/a> [1] .1.0-PHP_4.0.5-Linux_glibc21-i386.tar.gz
ZendOptimizer-1[1].1.0-PHP_4.0.5-Solaris-sparc.tar.gz
ZendOptimizer-1[1]. 1.0-PHP_4 .0.5-Windows-i386.zip


Die Installation des Optimierers ist sehr bequem und im Paket finden Sie detaillierte Anweisungen. überprüfen Sie am Beispiel der UNIX-Version das Betriebssystem genau und extrahieren Sie die Datei ZendOptimizer.so im Paket in ein Verzeichnis, vorausgesetzt, es ist /usr/local/lib
, und fügen Sie zwei S?tze in php.ini hinzu:
zend_optimizer.optimization_level=15
zend_extension="/usr/local/lib/ZendOptimizer.so"

Das ist es. Verwenden Sie phpinfo(), um den folgenden Text auf der linken Seite des Zend-Symbols anzuzeigen:
mit Zend Optimizer v1.1.0, Copyright (c) 1998-2000, von Zend Technologies

Dann hat der Optimierer erfolgreich angeh?ngt.
Aber der Compiler ZendEncode ist nicht kostenlos. Hier ist ein [url]http://www.PHPease.com[/url] Design von Ma Yong. ... Mi Jiantaos Kangmo胗?/a> [url]http://www.zend.com[/url] Kontakt, um die Lizenzvereinbarung zu erhalten.

Nachdem das PHP-Skript kompiliert wurde, erh?ht sich die Ausführungsgeschwindigkeit des Skripts erheblich. Die Skriptdatei kann nur eine Reihe verstümmelter Zeichen erkennen. Dies verhindert, dass der Angreifer das Skriptprogramm auf dem Server weiter analysiert. und der ursprüngliche Klartext im PHP-Skript Gespeicherte Passw?rter werden ebenfalls vertraulich behandelt, beispielsweise MySQL-Passw?rter. Allerdings ist es aufw?ndiger, das Skript auf der Serverseite zu ?ndern. Es ist besser, es lokal zu ?ndern und dann hochzuladen.


5. Berechtigungseinstellungen für Dateien und Verzeichnisse

Mit Ausnahme des Upload-Verzeichnisses dürfen die Berechtigungen für andere Verzeichnisse und Dateien im Webverzeichnis dem Benutzer ?nobody“ nicht das Schreiben erlauben Berechtigungen. Andernfalls kann der Angreifer die Homepage-Datei ?ndern, daher müssen die Berechtigungen des Webverzeichnisses richtig festgelegt werden. Au?erdem darf der Besitzer des PHP-Skripts kein Root sein, da Dateien im Safe_mode gelesen werden. Die Funktion ist eingeschr?nkt, sodass der Eigentümer der gelesenen Datei mit dem Eigentümer des aktuell ausgeführten Skripts identisch sein muss, um gelesen zu werden. Andernfalls wird bei eingeschalteter Fehleranzeige ein Fehler wie der folgende angezeigt:

Warnung: SAFE MODE-Einschr?nkung in Kraft. Das Skript mit der UID 500 ist Der Zugriff auf /etc/passwd im Besitz von UID 0 ist nicht gestattet /usr/local/apache/htdocs/open.php in Zeile 3
Auf diese Weise k?nnen wir verhindern, dass viele Systemdateien gelesen werden, wie zum Beispiel: /etc/passwd usw.

Auch die Besitzer des Upload-Verzeichnisses und des Upload-Skripts müssen gleich eingestellt sein, sonst kommt es zu Fehlern im Safe_mode.

6. Mysql-Startberechtigungseinstellungen


Mysql sollte nicht mit Root gestartet werden. Am besten erstellen Sie einen anderen Mysqladm-Benutzer. Sie k?nnen dem Systemstartskript einen Satz hinzufügen, z. B. /etc/rc.local:
su mysqladm -c "/usr/local/mysql/share/mysql/mysql.server start"

Danach Wenn das System neu startet, wird der MySQL-Prozess auch automatisch als Mysqladmin-Benutzer gestartet.

7. Durchsicht und Durchsicht von Protokolldateien und Upload-Verzeichnissen

Das Auffinden von Angriffsspuren aus einer so gro?en Protokolldatei ist wie das Finden einer Nadel in einer Heuhaufen, und es ist m?glicherweise nicht m?glich. Die im Internet hochgeladenen Dateien sollten ebenfalls regelm??ig überprüft werden. M?glicherweise liegt ein Problem mit dem Programm vor und der Benutzer hat einige illegale Dateien hochgeladen, z. B. beim Ausführen von Skripten.

8. Patches des Betriebssystems selbst

Das Patchen bekannter Schwachstellen im System ist die grundlegendste Verantwortung des Systemadministrators und stellt auch die letzte Verteidigungslinie dar.


Nach der obigen Konfiguration kann man zwar nicht sagen, dass sie uneinnehmbar ist, aber sie hat dem Angreifer in gewissem Ma?e auch gro?e Probleme bereitet, selbst wenn das PHP-Skript schwerwiegende Schwachstellen aufweist Durch das Programm kann der Angreifer keine praktischen Folgen für die Zerst?rung haben.

Erkl?rung dieser Website
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

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

PHP-Tutorial
1502
276
Jenseits des Lampenstacks: Rolle von PHP in der modernen Enterprise -Architektur Jenseits des Lampenstacks: Rolle von PHP in der modernen Enterprise -Architektur Jul 27, 2025 am 04:31 AM

PhpisstillrelevantinMoDernEnterpriseEnvironments.1.ModerPhp (7.xand8.x) Angebote, strenge, jitkompilation und moderne Syntax, machte ma?geschneiderte Foreiglableforlarge-ScaleApplikationen

Objektrelationszuordnung (ORM) Leistungsstimmen in PHP Objektrelationszuordnung (ORM) Leistungsstimmen in PHP Jul 29, 2025 am 05:00 AM

Vermeiden Sie N 1 Abfrageprobleme, reduzieren Sie die Anzahl der Datenbankabfragen, indem Sie die zugeh?rigen Daten im Voraus laden. 2. W?hlen Sie nur die erforderlichen Felder aus, um das Laden vollst?ndiger Entit?ten zu vermeiden, um Speicher und Bandbreite zu sparen. 3.. Verwenden Sie Cache-Strategien vernünftigerweise, z. 4. Optimieren Sie den Lebenszyklus der Entit?t und rufen Sie Clear () regelm??ig an, um den Speicher freizugeben, um den Speicherüberlauf zu verhindern. 5. Stellen Sie sicher, dass der Datenbankindex die generierten SQL -Anweisungen existiert und analysiert, um ineffiziente Abfragen zu vermeiden. 6. Deaktivieren Sie die automatische ?nderungsverfolgung in Szenarien, in denen ?nderungen nicht erforderlich sind, und verwenden Sie Arrays oder Leichtgewichtsmodi, um die Leistung zu verbessern. Die korrekte Verwendung von ORM erfordert die Kombination der SQL -überwachung, -gespeicherung, der Stapelverarbeitung und der geeigneten Optimierung, um die Anwendungsleistung zu gew?hrleisten und gleichzeitig die Entwicklungseffizienz beizubehalten.

Aufbau belastbarer Mikrodienste mit PHP und Rabbitmq Aufbau belastbarer Mikrodienste mit PHP und Rabbitmq Jul 27, 2025 am 04:32 AM

Um einen flexiblen PHP -Microservice zu erstellen, müssen Sie Rabbitmq verwenden, um eine asynchrone Kommunikation zu erreichen. 1. Decken Sie den Dienst über Nachrichtenwarteschlangen ab, um Kaskadenfehler zu vermeiden. 2. Konfigurieren Sie persistente Warteschlangen, anhaltende Nachrichten, Freigabebest?tigung und manuelles ACK, um die Zuverl?ssigkeit zu gew?hrleisten. 3.. Verwenden Sie exponentielle Backoff -Wiederholung, TTL und Dead Letter -Warteschlangenverarbeitungsfehler; 4. Verwenden Sie Tools wie Supervisford, um Verbraucherprozesse zu schützen und Herzschlagmechanismen zu erm?glichen, um die Gesundheit der Service zu gew?hrleisten. und letztendlich die F?higkeit des Systems erkennen, kontinuierlich in Fehlern zu arbeiten.

Erstellen von produktionsbereiten Docker-Umgebungen für PHP Erstellen von produktionsbereiten Docker-Umgebungen für PHP Jul 27, 2025 am 04:32 AM

Die Verwendung des richtigen PHP-Basisbildes und die Konfiguration einer sicheren, leistungsoptimierten Docker-Umgebung ist der Schlüssel zum Erreichen der Produktion. 1. W?hlen Sie PHP: 8,3-FPM-Alpine als Grundbild, um die Angriffsfl?che zu reduzieren und die Leistung zu verbessern. 2. Deaktivieren Sie gef?hrliche Funktionen über benutzerdefinierte Php.ini, deaktivieren Sie die Fehleranzeige und aktivieren Sie Opcache und JIT, um die Sicherheit und Leistung zu verbessern. 3.. Verwenden Sie Nginx als Reverse Proxy, um den Zugriff auf sensible Dateien einzuschr?nken und die PHP-Anforderungen korrekt an PHP-FPM weiterzuleiten. 4. Verwenden Sie mehrstufige Optimierungsbilder, um Entwicklungsabh?ngigkeiten zu entfernen, und richten Sie nicht Root-Benutzer auf, um Container auszuführen. 5. optionaler Aufsichtsbeh?rde zum Verwalten mehrerer Prozesse wie Cron; 6. überprüfen

VSCODE Settings.json Standort VSCODE Settings.json Standort Aug 01, 2025 am 06:12 AM

Die Datei "Settings.JSON" befindet sich auf dem Pfad auf Benutzerebene oder Arbeitsbereichsebene und wird verwendet, um die VSCODE-Einstellungen anzupassen. 1. Benutzer-Level-Pfad: Windows ist C: \ Benutzer \\ AppData \ Roaming \ Code \ User \ Settings.json, MacOS is /users//library/applicationsupport/code/user/settings.json, Linux is /home/.config/code/usser/setings.json; 2. Pfad auf Arbeitsbereichsebene: .VSCODE/Einstellungen im Projekt Root Directory

Ein tiefes Eintauchen in den Mechanismus für interne Müllsammlung von PHP Ein tiefes Eintauchen in den Mechanismus für interne Müllsammlung von PHP Jul 28, 2025 am 04:44 AM

Der Müllsammlung von PHP basiert auf der Referenzz?hlung, aber kreisf?rmige Referenzen müssen von einem periodischen kreisf?rmigen Müllsammler verarbeitet werden. 1. Die Referenzzahl gibt den Speicher sofort frei, wenn keine Referenz auf die Variable vorhanden ist. 2. Referenzreferenz bewirkt, dass Speicher nicht automatisch freigegeben werden kann, und es h?ngt davon ab, dass GC ihn erfasst und reinigt. 3.. GC wird ausgel?st, wenn das "m?gliche Wurzel" den Schwellenwert erreicht oder manuell gc_collect_cycles () aufruft; 4. Langzeit laufende PHP-Anwendungen sollten gc_status () überwachen und rechtzeitig gc_collect () aufrufen, um Speicherleckage zu vermeiden. 5. Zu den Best Practices geh?rt die Vermeidung von kreisf?rmigen Referenzen, die Verwendung von gc_disable () zur Optimierung der Leistungsschlüsselbereiche und Dereference -Objekte über die Clear () -Methode des ORM.

Die serverlose Revolution: Bereitstellung skalierbarer PHP -Anwendungen mit BREF Die serverlose Revolution: Bereitstellung skalierbarer PHP -Anwendungen mit BREF Jul 28, 2025 am 04:39 AM

Mit Bref erm?glicht es PHP-Entwicklern, skalierbare, kostengünstige Anwendungen zu erstellen, ohne Server zu verwalten. 1.Bref bringt Php nach AWSLambda, indem er eine optimierte PHP -Laufzeitschicht bereitstellt, Php8.3 und andere Versionen unterstützt und sich nahtlos in Frameworks wie Laravel und Symfony integriert. 2.. 3. Führen Sie den Befehl ServerlessDeploy aus, um die Bereitstellung abzuschlie?en, apiCateway automatisch zu konfigurieren und Zugriffs -URLs zu generieren. 4. Für Lambda -Beschr?nkungen bietet BREF L?sungen.

Aufbau unver?nderlicher Objekte in PHP mit Readonly -Eigenschaften Aufbau unver?nderlicher Objekte in PHP mit Readonly -Eigenschaften Jul 30, 2025 am 05:40 AM

ReadOmpropertiesinphp8.2canonlyBeSignedoncinstructororatDeklarationandCannotBemodifiedAfterward, durchsetzungsvermutbarkeitatheluagelevel.2.ToachedevimmiMmutability, WrapMutabletypesLikearrayObjecustomimmutablecollections

See all articles