tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
835
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    PHP-Fan PHP-Fan ist offline Mitglied Gold
    Registriert seit
    Jun 2005
    Beiträge
    171
    Hallo,

    ich möchte gerne, dass das includen nur auf meinem Server möglich ist. Funktionieren tut das schon ein Kollege hatte das mal gemacht. Weiß aber nicht mehr wie das geht. Das stellt nämlich leder ein enormes Sicherheitsrisiko da.

    Diesen Code verwende ich!

    PHP-Code:
    <?
    $site 
    = (isset ($_REQUEST['site'])) ? $_REQUEST['site'] : '';
    $host=$_SERVER['HTTP_HOST'];

    if(
    $site=="") {
    // News System Include

    include("http://$host/main.php?open=news");

    }
      else {
                include(
    $site);
    }
    ?>
    Und

    PHP-Code:
    <?
    require("http://$host/main.php?open=newest5"); 

    ?>
    Ich hoffe Ihr könnt mir helfen!
     

  2. #2
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Erstmal: include() und require() koennen, genauso wie einige andere Funktionen, nur mit URLs umgehen wenn allow_url_fopen=on ist. Da man darauf nicht zwingend Einfluss hat und diese Einstellung gewaltige Sicherheitsloecher aufreissen kann sollte man immer so programmieren, dass die Script auch mit allow_url_fopen=off laufen. Soll heissen: Keine Remote-Includes. Und falls es wirklich noetig sein sollte Code von anderen Server zu holen um ihn auszufuehren, dann sollte diese Addresse fest im Quellcode eingetragen sein und nicht uebergeben werden. Dann kannst Du ueber fsockopen() verbinden und darueber die Daten abholen. Ansonsten gilt halt: Nur ueber's Dateisystem includen.
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  3. #3
    PHP-Fan PHP-Fan ist offline Mitglied Gold
    Registriert seit
    Jun 2005
    Beiträge
    171
    Andere möglichkeiten gibt es nichrt?
     

  4. #4
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Wenn allow_url_fopen=off ist wirst Du mit fsockopen() arbeiten muessen. Alternativ kannst Du, falls verfuegbar, mit CURL arbeiten. Aber dies ist "in the wild" wohl eher selten zu finden. Oder falls Du FTP-Zugriff hast kannst Du, falls verfuegbar, mit den FTP-Funktionen arbeiten, oder eben eine FTP-Verbindung ueber fsockopen() aufbauen.
    Allgemein wuerde ich da, wenn es denn halt wirklich noetig ist, auf fsockopen(), bzw. meine Klassen fuer HTTP- oder FTP-Zugriff, setzen.

    Bei Remote-Includes ist eh das Problem, dass sie in der Regel nicht auf Deinem Server ausgefuehrt werden da Du ja bei einem Zugriff per HTTP nur den URL aufrufst und somit das Script auf dem Server ausgefuehrt wird, es sei denn Dir wird dort einfach nur der Quellcode praesentiert.

    Uebrigens, ein kleiner Blick in mein Tutorial Schutz vor includen von Dateien ausserhalb des DocRoot koennte vielleicht auch nicht uninteressant fuer Dich sein.
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

Ähnliche Themen

  1. Öffnen des IEs verbieten?
    Von VioX im Forum Microsoft Windows
    Antworten: 14
    Letzter Beitrag: 27.06.06, 16:08
  2. Includen von Externen Seiten verbieten!
    Von PHP-Fan im Forum PHP
    Antworten: 4
    Letzter Beitrag: 12.06.06, 01:06
  3. Kopieren verbieten
    Von babagirl im Forum CSS
    Antworten: 2
    Letzter Beitrag: 02.07.05, 01:07
  4. htmlcode verbieten
    Von ruNN0r im Forum PHP
    Antworten: 2
    Letzter Beitrag: 17.04.05, 18:50
  5. Minimieren verbieten
    Von ExtremeSnail im Forum Javascript & Ajax
    Antworten: 4
    Letzter Beitrag: 26.01.05, 23:37