 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
09.07.2006, 16:29
|
#1
|
|
TP-Moderator
Registriert seit: Oct 2004
Ort: Hannover
|
php include und Dateiendung
Moinsen,
wenn ich Teile des Quellcodes in eine HTML Seite mittels
PHP-Code:
<?php require_once('dateiname.html'); ?>
einbinde, muss ich die HTML-Datei dann zwingend mit der Endung .php abspeichern oder geht auch eine andere Dateiendung?
Inwieweit würden sich diese Endungen denn auf Suchmaschinen auswirken?
Bin für jede Antwort dankbar
Gruß
Sven
|
|
|
09.07.2006, 16:35
|
#2
|
|
TP-Veteran
Registriert seit: Sep 2002
Ort: Winterthur
|
Nope, jede Endung funktioniert. Für die Sumas ist das auch nicht relevant, denn sie sehen nur die Seite von der aus du diese Datei includierst, denn sie wird schon vor dem Ausliefern an den Client integriert ( also serverseitig ).
cu
edit: nochmal zur Verdeutlichung:
PHP-Code:
// Hauptseite.php
<html><head> ..etc
<?php include("ismiarwurschwieichhaiss.foo"); ?>
</html>
// ismiarwurschwieichhaiss.foo : inhalt
<b>ich bin content in ismiarwurschwieichhaiss.foo </b>
// suma sieht Hauptseite.php mit Inhalt
<html><head> ..etc
<b>ich bin content in ismiarwurschwieichhaiss.foo </b>
</html>
__________________
Wer sabotiert eigentlich ständig meine Signatur?
Geändert von manuelito (09.07.2006 um 16:40 Uhr).
|
|
|
09.07.2006, 16:47
|
#3
|
|
TP-Moderator
Registriert seit: Oct 2004
Ort: Hannover
|
danke für die Antwort aber anscheinend habe ich mich schlecht ausgedrückt.
Ich meinte die Datei, bei der ich den PHP-Befehl eintrage und nicht die Datei, die ich einbinden möchte.
Aber wenn ich dein Beispiel richtig verstehe mit "Hauptseite.php" geht es wohl nur mit dieser Dateiendung.
Gruß
Sven
|
|
|
09.07.2006, 19:02
|
#4
|
|
TP-Veteran
Registriert seit: Sep 2002
Ort: Winterthur
|
Achso! Ja PHP kannst du natürlich nur in PHP Seiten ausführen, normalerweise geht das nur mit der Endung .php
Es gibt da allerdings einen kleinen Trick, mit dem man PHP für alle möglichen Dateitypen aktivieren kann. Und zwar kannst du folgendes in eine .htaccess Datei schreiben:
AddType application/x-httpd-php php php4 php3 html htm gaga tpd xyz abc
Sollte für die Sumas kein Problem darstellen, solange du die Seiten als text/html oder wie auch immer lesbar auslieferst.
cu
PS: dein Server muss natürlich dieses .htaccess Zeug unterstützen... geht nicht überall gleich.
__________________
Wer sabotiert eigentlich ständig meine Signatur?
|
|
|
09.07.2006, 19:36
|
#5
|
|
TP-Moderator
Registriert seit: Oct 2004
Ort: Hannover
|
OK, nochmals danke.
Dann hatte ich das ja doch richtig in Erinnerung gehabt, dass so etwas möglich ist.
Gruß
Sven
|
|
|
10.07.2006, 13:36
|
#6
|
|
TP-Veteran
Registriert seit: May 2006
|
Wenn man solche htaccess-Tricks benutzt kann das aber auch nach hinten los gehen, wenn man den Auftritt mal portieren möchte...
__________________
...Meine Meinung
1984
|
|
|
10.07.2006, 13:42
|
#7
|
|
TP-Moderator
Registriert seit: Jun 2004
Ort: Hannover
|
Wobei es nicht unbedingt zu empfehlen ist, dateien zu includieren, die bei einem direktaufruf selbst nicht geparst werden. Denn dadurch kommt man schnell an den Quelltext eines Scriptes (naja in Teilen).
Ist nicht unbedingt schlimm, es kann einem Hacker aber helfen ggf. Schwachstellen schneller zu identifizieren. Und wenn man es ganz dumm macht, schreibt man in diese andere Datei noch die Datenbankzugangsdaten oder FTP- Passwörter rein.. Deswegen ist es eher üblich zu inkludierende Dateien nach dem schema "dateiname.inc.php" zu bennen.. Einmal um mit dem inc anzuziegen, daß die Datei includiert wird und zum zweiten einen Zugriff auf den Quelltext zu verhindern..
__________________
Je größer der Deppenfaktor, desto gigantischer das Bescheidwissergefühl
-Dieter Nuhr
|
|
|
10.07.2006, 14:43
|
#8
|
|
TP-Moderator
Registriert seit: Jan 2004
Ort: Marbach
|
Zitat:
|
Zitat von Poloatze
Moinsen,
wenn ich Teile des Quellcodes in eine HTML Seite mittels
PHP-Code:
<?php require_once('dateiname.html'); ?>
einbinde, muss ich die HTML-Datei dann zwingend mit der Endung .php abspeichern oder geht auch eine andere Dateiendung?
Inwieweit würden sich diese Endungen denn auf Suchmaschinen auswirken?
Bin für jede Antwort dankbar
Gruß
Sven
|
Probier doch mal ob dein Server *.shtml Dateien unterstützt.
Falls ja kannst Du mit SSI (Server Side Includes ) arbeiten.
Alle Dateien heißen dann anstelle von *.htm oder *.html eben *.shtml
Ein Server Side Include wird wie folgt eingebunden:
HTML-Code:
<!--#include file="popup.html" -->
Grüße Torsten
__________________
Gruß Torsten!
________________
|
|
|
10.07.2006, 14:46
|
#9
|
|
TP-Supporter
Registriert seit: Sep 2003
Ort: Wien, Österreich
|
Zitat:
|
Zitat von Adromir
Wobei es nicht unbedingt zu empfehlen ist, dateien zu includieren, die bei einem direktaufruf selbst nicht geparst werden. Denn dadurch kommt man schnell an den Quelltext eines Scriptes (naja in Teilen)
|
deshalb in jedem fall auf produktiv servern "display_errors" deaktivieren und
"log_errors" aktivieren
außerdem, falls man doch eine "nicht-php"-endung verwenden will, direkte aufrufe folgendermaßen in der .htaccess unterbinden
Zitat:
<FilesMatch "\.inc$">
Deny from all
</FilesMatch>
|
allerdings, wenn der webserver ein shared host ist, ist man nie 100% sicher, wie mans auch dreht oder wendet (da machts dann auch keinen unterschied ob die endung jetzt php oder inc oder was auch immer ist):
Zitat:
In addition to being able to read arbitrary files on a shared host, an attacker can also create a script that browses the filesystem. This type of script can be used to discover the location of your source code because your most sensitive files are not likely to be stored within document root. An example of such a script follows:
Code:
<?php
if (isset($_GET['dir']))
{
ls($_GET['dir']);
}
elseif (isset($_GET['file']))
{
cat($_GET['file']);
}
else
{
ls('/');
}
function cat($file)
{
echo htmlentities(file_get_contents($file), ENT_QUOTES, 'UTF-8'));
}
function ls($dir)
{
$handle = dir($dir);
while ($filename = $handle->read())
{
$size = filesize("$dir$filename");
if (is_dir("$dir$filename"))
{
$type = 'dir';
$filename .= '/';
}
else
{
$type = 'file';
}
if (is_readable("$dir$filename"))
{
$line = str_pad($size, 15);
$line .= "<a href=\"{$_SERVER['PHP_SELF']}";
$line .= "?$type=$dir$filename\">$filename</a>";
}
else
{
$line = str_pad($size, 15);
$line .= $filename;
}
echo "$line\n";
}
$handle->close();
}
?>
An attacker might first view /etc/passwd or a directory listing of /home to get a list of usernames on the server. It is then trivial to browse a user's source code within the user's document root; the location of source code stored outside of the user's document root is revealed by language constructs such as include and require. For example, consider discovering the following script at /home/victim/public_html/admin.php:
Code:
<?php
include '../inc/db.inc';
/* ... */
?>
If an attacker manages to view the source of this file, the exact loction of db.inc is discovered, and the attacker can use readfile( ) to expose the contents, revealing the database access credentials. Thus, the fact that db.inc is stored outside of document root offers subpar protection in this environment.
This particular attack illustrates why you should consider all source code on a shared server to be public, opting to store all sensitive data in a database.
|
Shiflett, Chris: Essential PHP Security, O'Reilly 2005
__________________
Java != JavaScript
"He who makes a beast of himself gets rid of the pain of being a man."
Dr. Johnson
|
|
|
10.07.2006, 17:27
|
#10
|
|
TP-Insider
Registriert seit: Nov 2005
Ort: Berlin
|
Zitat:
PHP-Code:
// Hauptseite.php <html><head> ..etc <?php include("ismiarwurschwieichhaiss.foo"); ?> </html>
// ismiarwurschwieichhaiss.foo : inhalt <b>ich bin content in ismiarwurschwieichhaiss.foo </b>
// suma sieht Hauptseite.php mit Inhalt
<html><head> ..etc <b>ich bin content in ismiarwurschwieichhaiss.foo </b> </html>
|
Zu beachten ist aber noch, dass man das in der datei.inc.php, sprich in der includierten Datei nicht nochmal mit den einzelnen HTML-Elementen, falls vorhanden, bestückt, denn dann könnte es vorkommen, dass die Seite nicht mehr valid ist. Zum Beispiel darf nicht in der haupseite.php UND der include.php "<html>" stehen, da dann das aus "include.php" auch in der hauptseite.php steht.
Ein kleiner Trick zur Dateiendung: Die includeten Dateien können heißen wie sie wollen in PHP, könnte man auch include.mp3 nennen, das hat den Vorteil, dass der Browser beim Öffnen ohne Include, kann ja sein das man die Datei nach langem Suchen als Externer auf dem Server findet, den Media Player startet und dann versucht das includete wiederzugeben, was natürlich nicht geht.
Viele Grüße
|
|
|
10.07.2006, 17:54
|
#11
|
|
TP-Specialist
Registriert seit: Mar 2005
Ort: Unterfranken
|
Zitat:
|
Zitat von Adromir
Wobei es nicht unbedingt zu empfehlen ist, dateien zu includieren, die bei einem direktaufruf selbst nicht geparst werden. Denn dadurch kommt man schnell an den Quelltext eines Scriptes (naja in Teilen).
|
Wobei es schon dann zu Problemen kommen kann, weil der Code ausgeführt wird, wenn er geparst wird. Wenn ein Fremder z.B. weiß, dass datenbank-zugriff.inc.php Zugriff auf die Datenbank erlaubt, kann er eben diese Datei selbst includen -- und es ist ihm egal, ob er den Quellcode sehen kann oder nicht. Wenn er überhaupt weiß, wie solche Dateien heißen und in welchem Ordner sie sich befinden, ist es u.U. bereits zu spät, wenn der Code von der Sicherheit her schlampig geschrieben ist.
Deshalb: direkten Zugriff von anderen Servern unterbinden, Verzeichnisse mit sicherheitsrelevanten Dateien schützen (u.a. auch die Auflistung der dort befindlichen Dateien deaktivieren), usw.
|
|
|
11.07.2006, 11:12
|
#12
|
|
TP-Moderator
Registriert seit: Oct 2004
Ort: Hannover
|
huch, die Diskussion geht ja noch weiter
Zitat:
|
Zitat von Adrmoir
Wobei es nicht unbedingt zu empfehlen ist, dateien zu includieren, die bei einem direktaufruf selbst nicht geparst werden. Denn dadurch kommt man schnell an den Quelltext eines Scriptes (naja in Teilen).
|
Das macht überhaupt nichts wenn der Quelltext lesbar ist. Mir geht es nur darum, dass ich nicht immer alles von Hand ändern muss. Vorher habe ich das alles noch mit der Vorlagenfunktion von DW bearbeitet; allerdings spinnt DW manchmal bei der Siteverwaltung bei einem Neuaufspielen des Systems. Außerdem spare ich beim Einbinden mittels .include Funktion ein bisschen Webspace.
Zitat:
|
Zitat von Torsten
Probier doch mal ob dein Server *.shtml Dateien unterstützt.
Falls ja kannst Du mit SSI (Server Side Includes ) arbeiten.
|
Habe ich schon probiert gehabt. Es funktioniert jedoch nicht.
Gruß
Sven
|
|
|
11.07.2006, 11:37
|
#13
|
|
TP-Moderator
Registriert seit: Jan 2004
Ort: Marbach
|
Falls Du noch anderen Webspace zur Verfügung hast bei dem Du evtl. ein wenig mehr Features inkl. hast, dann könntest Du ja eine Umleitung einrichten und somit trotzdem mit Include-Variablen arbeiten.
Ansonsten müsste es doch auch eine Möglichkeit via Java/JavaScript geben, denn es gibt ja sogar kleinere Shopsysteme die auf dieser Basis aufgebaut sind.
Apropos Dreamweaver-Synchronisation:
Mit welcher Version arbeitest Du und was funktioniert da nicht, ist eigentlcih ab Version MX 6.0 recht zuverlässig 
__________________
Gruß Torsten!
________________
|
|
|
11.07.2006, 13:12
|
#14
|
|
TP-Moderator
Registriert seit: Oct 2004
Ort: Hannover
|
Zitat:
|
Ansonsten müsste es doch auch eine Möglichkeit via Java/JavaScript geben, denn es gibt ja sogar kleinere Shopsysteme die auf dieser Basis aufgebaut sind.
|
Java Script wollte ich nicht verwenden.
Zitat:
|
Mit welcher Version arbeitest Du und was funktioniert da nicht, ist eigentlcih ab Version MX 6.0 recht zuverlässig
|
DW8. Die Dateien werden zwar alle schön in dieser Dateienliste angezeigt aber wenn er dann aktualisieren soll funktioniert das nicht immer 100 %ig. Manche Dateien lässt er außen vor bei der Aktualisierung. Das liegt aber an irgend einem Programm das ich installiert habe. Wenn ich DW gleich am Anfang nach dem Aufspielen von Windows installiere funktioniert es einwandfrei. Mit der Zeit ist es aber auch nervig, dass man ständig diese Nachfrage bekommt, ob man nun alle Dateien aktualisieren möchte oder nur einen Teil.
Zitat:
|
Falls Du noch anderen Webspace zur Verfügung hast bei dem Du evtl. ein wenig mehr Features inkl. hast, dann könntest Du ja eine Umleitung einrichten und somit trotzdem mit Include-Variablen arbeiten.
|
Ich hab' gerade mal in meine Webspacebeschreibung geschaut und da ist SSI doch angegeben. Naja, dann weiß ich nicht was ich falsch gemacht habe. Es spielt doch keine Rolle, wenn die include-Dateien in einem Extraordner gespeichert sind, oder? Die Einbindung habe ich jedoch mit "virtual" versucht anstelle von "file". Beim Server handelt es sich um einen Apache. Ich probier das die Tage noch einmal.
Gruß
Sven
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 07:07 Uhr.
|
 |