Ein wichtiges Thema bei der Einbindung ist die Offenlegung des Quellcodes . Der Hauptgrund für dieses Problem ist die folgende häufige Situation:
l Verwendung der Erweiterung .inc für enthaltene Dateien
l Die enthaltenen Dateien werden im Hauptverzeichnis der Website gespeichert
l Apache hat den Typ der .inc-Datei nicht festgelegt
l Apaches Standarddateityp ist Text/Plain
Die obige Situation führt zu einem direkten Zugriff auf die eingebundene Datei über die URL. Schlimmer noch: Sie werden als normaler Text behandelt und nicht von PHP analysiert, sodass Ihr Quellcode im Browser des Benutzers angezeigt wird (siehe Abbildung 5-1).
Abbildung 5-1. Offenlegung des Quellcodes im Server
Es ist einfach, diese Situation zu vermeiden. Sie können Ihre Anwendung nur neu organisieren und alle enthaltenen Dateien außerhalb des Hauptverzeichnisses der Website ablegen. Am besten platzieren Sie nur die Dateien, die öffentlich veröffentlicht werden müssen, im Hauptverzeichnis der Website.
Auch wenn das vielleicht verrückt klingt, gibt es viele Situationen, in denen Quellcode offengelegt werden kann. Ich habe Apache-Konfigurationsdateien gesehen, die versehentlich geschrieben wurden (und erst beim nächsten Start entdeckt wurden), unerfahrene Systemadministratoren, die Apache aktualisierten, aber vergaßen, PHP-Unterstützung hinzuzufügen, und eine Vielzahl anderer Situationen, die dazu führten, dass Quellcode offengelegt wurde.
Indem Sie so viel PHP-Code wie möglich außerhalb des Hauptverzeichnisses Ihrer Website aufbewahren, verhindern Sie, dass der Quellcode offengelegt wird. Zumindest ist es am besten, alle Include-Dateien außerhalb des Hauptverzeichnisses der Site aufzubewahren.
Einige Methoden können die Möglichkeit der Offenlegung des Quellcodes einschränken, das Problem jedoch nicht grundsätzlich lösen. Zu diesen Methoden gehört die Konfiguration von Apache, um .inc-Dateien genauso zu verarbeiten wie PHP-Dateien, die Verwendung von Include-Dateien mit einem .php-Suffix und die Konfiguration von Apache, um direkte Anfragen für .inc-Dateien nicht zu akzeptieren:
<Files ~ "\.inc$"> Order allow,deny Deny from all </Files>
Obwohl diese Methoden ihre Vorteile haben, ist keine so sicher wie das Platzieren der Include-Dateien außerhalb des Home-Verzeichnisses der Site. Verlassen Sie sich zum Schutz Ihrer Anwendung nicht auf die oben genannten Methoden, sondern betrachten Sie sie höchstens als Tiefenverteidigung.
Das Obige ist der Inhalt der Offenlegung des PHP-Sicherheitsquellcodes. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.org). php.cn)!