.inc statt .php beim includen besser?

preko

Erfahrenes Mitglied
Hi,

ich las vor geraumer Zeit, dass Dateien, die includiert werden sollen (z. B. Datenbank-Zugangsdaten) besser mit der Endung .inc statt einfach mit .php abgelegt werden sollen. Mir ist jedoch entfallen, warum dies angeblich "besser" wäre.
Ich persönlich sehe da keinen Vorteil, da die Datei dann ja beim direkten Aufruf doch lesbar wird, oder?

Hat jemand eine Antwort darauf? :confused:


Gibt es noch einen besseren, sicheren Weg Datenbank-Zugangsdaten so zu sichern, dass die unbefugte Zugriffsmöglichkeit sehr eingeschränkt wird, außer mittels .htaccess?


Beste Grüße,
preko
 
Nur .inc ist eine sicherheitstechnische Katastrophe, dann kann ja jeder den Quelltext deiner PHP-Dateien und möglicherweise darin vorhandene Passwörter auslesen. Ob man jetzt also .php oder .inc.php verwendet, ist eigentlich Geschmackssache. Insbesondere, wenn du schon einen Ordner includes (oder so ähnlich) hast, kannst du dir das auch gerne schenken.
 
Man muss im Apache ja auch noch .inc mit PHP verbinden, daher ändert sich an Sicherheit nichts, eventuell muss man aufpassen wenn man sie auf einen anderen Server kopiert, der .inc nicht mit PHP verbunden hat.

Generell hilft es ein wenig der Übersicht wenn man über die Dateiendugen schon erkennt das die Datei niemals direkt aufgerufen wird.

Sonstigen Nutzen gibt es nicht.
 
Wie SilentWarrior schon sagte ist die Verwendung von .inc sicherheitstechnisch vollkommen Tabu.
Der Vorschlag von EngelchenB ist nur durchfuehrbar wenn man selbst an der Apache-Konfiguration feilen kann, was in der Regel nicht der Fall sein wird, denn welcher Hoster will schon, dass die liebevoll zusammengestellte Konfiguration von irgendwelchen Wilden vollkommen zerbroeselt wird.
.inc.php wuerde ich nur bei Scripts nutzen die ausschliesslich Funktionen beinhalten, also reine Includes sind. Bei Scripts die zur Include-Zeit direkt Code laufen lassen nutze ich ganz normal .php
Klassen haben bei die Endung .class.php
 
Ich geb meinen Dateien keinen zusätzlichen Suffix sondern einen Präfix. Eine Klassen-Datei heißt dann beispielsweise class.foobar.php. Im Prinzip ist es aber sch**ßegal.
 
Vielen Dank für die Antworten. Damit ist meine Frage hinreichend beantwortet. :D


Beste Grüße,
preko
 
Weil die Frage aufkam, wie mensch Dateien vor direktem Zugriff schützen kann...

In die Stammdatei (z.B. index.php) trägt mensch einfach in die erste Zeile:
PHP:
define('direct_access', 0);

In die zu schützende Datei (z.B. inlcudes/bla.inc.php):
PHP:
defined('direct_access') or die('Direct Access to this file is not allowed.');

Ganz einfach eigentlich..
 
Es geht auch ohne zusätzlich deklarierter Konstante:
PHP:
<?php

	if( $_SERVER['SCRIPT_FILENAME'] !== __FILE__ ) {
		header($_SERVER['SERVER_PROTOCOL'].' 403 Forbidden', true);
		exit;
	}

	…

?>
Alternativ könnte auch der Statuscode „404 Not Found“ gesendet werden.
 
Zurück