Includes zu anderen Domains erlauben

Ich habe das Problem das ich ein anderes php Script von einer anderen Domain auf dem gleichen Server erlauben will. Die Sicherheitseinstellungen lassen es aber offensichtlich nicht zu. Wie kann ich das ändern das php Scrips von dem gelichen Server included werden dürfen.
Safe Mode off für einzelne Domains habe ich gefunden aber hier weiß ich nicht wo, was zu ändern ist.
 

Till

Administrator
Dann kannst Du den Pfad zu der anderen Website unter Optionen im OpenBasedir Feld hinzufügen. Mehere Pfaede werden durch : getrennt.
 
ist dann ein zusätzlicher oder ein genereller Eintrag? Damit meine ich sind die includes innerhalb einer Domain immer frei oder muss ich die dann alle dazuschreiben?
Welche Domain von welcher includen darf?
 
include() [function.include]: URL file-access is disabled in the server configuration in

eine Änderung in der php_ini

safe_mode_include_dir = /var/www/clients/client3/web4/web:/var/www/clients/client1/web6/web
und
open_basedir = /var/www/clients/client3/web4/web:/var/www/clients/client1/web6/web


brachte auch nichts

Hängt das mit safe_mode_gid = zusammen?
 
Zuletzt bearbeitet:

Till

Administrator
URL access hat aber nichts mit open vbasedir zu tun, sondern mit dem URL access. Heißt glaube ich url fopen wrapper oder so in der php.ini.

Diese Funktion ist aber sicherheitstechnisch etwas heikel, da sie beim kleinsten Fehler in einem der PHP scripte das Nachladen von externem Schadcode ermöglicht. Du solltest Dir also nochmal überlegen ob Du das wirklich machen willst.
 
Welche Möglichkeit habe ich um ein script von Domain A auf Domain B aufzurufen?
Oder gibt es eine generelle Möglichkeit das Scripte Serverbezogen aufzurufen sind. Dann wäre das nachladen von ausserhalb ja nicht möglich.
 

Till

Administrator
Was genau willst Du denn includen? Eine externe URL oder eine lokale Datei und soll dann der Inhalt als PHP code interpretiert werden oder aber z.b. als html oder xml Content verwendet werden?
 
Nur eine php Datei auf einer anderen Domain (gleicher Server) aufrufen.
Gibt es keine Einstellungen die das explizit von Domains auf den selben Server z.b. über die IP zuläßt? Das wäre die einfachste Lösung.
 

nowayback

Well-Known Member
Moinsen,

evtl hilft dir das:
PHP:
$remotefile = "http://www.path.to/filename.php";

$fh = fopen($remotefile, 'r'); 
$inhalt = fread($fh, filesize($remotefile)); 
fclose($fh); 

echo $inhalt;

PHP: fopen - Manual

Grüße
nwb
 
Zuletzt bearbeitet:
Es scheitert schon an fopen oder basedir aufgrund der Sicherheitseinstellungen. Aber so wie ich mitbekommen habe kann man etwas in der phpini ändern das es zu bestimmten Domains erlaubt ist. Ich möchte jetzt aber nicht eine Domain eintragen (was bisher auch scheiterte) sondern einfach die Serverip. Nur wie?
 

nowayback

Well-Known Member
Es scheitert schon an fopen oder basedir aufgrund der Sicherheitseinstellungen. Aber so wie ich mitbekommen habe kann man etwas in der phpini ändern das es zu bestimmten Domains erlaubt ist. Ich möchte jetzt aber nicht eine Domain eintragen (was bisher auch scheiterte) sondern einfach die Serverip. Nur wie?

Moinsen,

Das erlauben auf eine bestimmte IP macht überhaupt keinen Sinn, denn unter dieser IP können ja mehrere Websites gehostet werden und den Pfad zu den Websites legt dein Webserver fest. Aber ich drück mal deine Nase direkt da drauf: open_basedir

Du hast ja gesagt, dass das Script auf dem selben Server liegt, also sollte das funktionieren.

Im ISP Config kannste bei PHP open_basedir in Domains direkt den Pfad mit eintragen zum anderen Verzeichnis in dem das Script liegt.



Grüße
nwb
 
Zuletzt bearbeitet:
Nun unter der IP sind nur meine Webseiten gehostet.
Meinst Du unter ISP Config den Punkt System/Serverconfiguration/web/php open_basedir ?
Da steht eine lange Zeichenkette drin

[website_path]/web:[website_path]/tmp:/var/www/[website_domain]/web:/srv/www/[website_domain]/web:/usr/share/php5:/tmp:/usr/share/phpmyadmin
Muss da was geändert werden?
 

nowayback

Well-Known Member
Nun unter der IP sind nur meine Webseiten gehostet.
Meinst Du unter ISP Config den Punkt System/Serverconfiguration/web/php open_basedir ?
Da steht eine lange Zeichenkette drin

[website_path]/web:[website_path]/tmp:/var/www/[website_domain]/web:/srv/www/[website_domain]/web:/usr/share/php5:/tmp:/usr/share/phpmyadmin
Muss da was geändert werden?

1. ISP Config als Admin einloggen
2. Klicke auf Domains
3. Klicke auf die Domain, die das Script von der anderen laden soll
4. Klicke auf Optionen
5. Trage bei PHP open_basedir den Pfad zu dem Verzeichnis ein, indem das Script liegt
6. Klicke auf Speichern
7. Warte 1 Minute bis ISP Config das übernommen hat
8. Teste dein Script
9. Logge dich wieder aus

Es ist immer sehr hilfreich zu verschweigen wie die Fehlermeldungen lauten, denn nur so können die Leute, die versuchen wollen dir zu helfen, auch mal ihre Glaskugel benutzen. Leider ist meine gerade zur Politur. Gerne lass ich dich wissen wenn ich diese zurück habe.

Solltest du Ironie in diesem Post finden, dann könnte diese beabsichtigt sein ;)

Grüße
nwb
 

Werbung

Top