Includes zu anderen Domains erlauben

Geht auch nicht.

Warning: include() [function.include]: URL file-access is disabled in the server configuration in /var/www/clients/client1/web6/web/domain/modules/mod_werbung.php on line 16

Warning: include(http://domain.com/whats_new_galerie.php) [function.include]: failed to open stream: no suitable wrapper could be found in /var/www/clients/client1/web6/web/domain/modules/mod_werbung.php on line 16

Warning: include() [function.include]: Failed opening 'http://domain.com/whats_new_galerie.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/clients/client1/web6/web/domain/modules/mod_werbung.php on line 16

Das script lautet:

<?php
// $Id: mod_newmodule.php,v 1.0 2004/04/18 15:23:20 sgabardi Exp $
/**
* Newmodule
* @package Mambo Open Source
* @Copyright (C) 2000 - 2003 Miro International Pty Ltd
* @ All rights reserved
* @ Mambo Open Source is Free Software
* @ Released under GNU/GPL License : The GNU General Public License v3.0 - GNU Project - Free Software Foundation (FSF)
* @version $Revision: 1.0 $
**/




include ('http://domain.com/whats_new_galerie.php');

?>
 
Wenn ich in der php.ini

;;;;;;;;;;;;;;;;;;
; Fopen wrappers ;
;;;;;;;;;;;;;;;;;;

; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
allow_url_fopen = ON

; Whether to allow include/require to open URLs (like http:// or ftp://) as files.
allow_url_include = ON


Setze dann funktioniert es, aber das soll ja ein Sicherheitsrisiko sein.
 

nowayback

Well-Known Member
Moinsen,

vielen Dank für die Fehlermeldung. Damit kann man doch arbeiten. Es gibt für dich 2 Möglichkeiten die mir spontan einfallen:

kann nicht funktionieren, da du die domain und nicht den Pfad angegeben hast der included werden soll. Der Pfad sollte sowas in der Art sein: /var/www/clients/client1/web6/web/domain/modules/name.php

Möglichkeit nur 2: Dort wo du den Pfad angegeben hast, kannst du unten drunter in das große weiße Feld "Custom php.ini Settings" etwas eintragen. Trage dort bitte: "allow_url_include = On" ein.

Danach speichern und die obligatorische Minute warten. Dann testen.

Hinweis: Bitte prüfe, wenn du Möglichkeit 2 anwendest, zukünftig alle deine Scripts die du hochlädst sehr genau, denn damit ist es möglich Schadcode von einer anderen Webseite runterzuladen die du dann im schlimmsten Fall weiterverbreiten könntest.


*** Edit ***
Wenn ich in der php.ini

;;;;;;;;;;;;;;;;;;
; Fopen wrappers ;
;;;;;;;;;;;;;;;;;;

; Whether to allow the treatment of URLs (like http:// or ftp://) as files.
allow_url_fopen = ON

; Whether to allow include/require to open URLs (like http:// or ftp://) as files.
allow_url_include = ON


Setze dann funktioniert es, aber das soll ja ein Sicherheitsrisiko sein.

Hab gerade gesehen das wir zur selben Zeit gepostet haben. Dein Vorgehen ändert die Standart Einstellungen für alle Domains. Die Möglichkeit 2 die ich oben gepostet habe, sollte nur die Vorgaben für die entsprechende Domain ändern, ist aber sonst das gleiche Prinzip.

Grüße
nwb
 
Zuletzt bearbeitet:

Till

Administrator
Ich weiß ja nicht was genau Du mit dem Include vorhast, daher ein wichtiger Hinweis: ein Include auf http://.... in PHP included immer die Ausgabe der Datei whats_new_galerie.php und nicht den Sourcecode der Datei whats_new_galerie.php, wenn in der Webseite domain.com PHP aktiviert ist.

Also wenn die Datei whats_new_galerie.php z.B. folgendes enthält:

<?php
echo "Hallo";
?>

dann included ein include(http://domain.com/whats_new_galerie.php) einfach nur:

Hallo

wähernd ein include(/var/www/domain.com/web/whats_new_galerie.php) folgendes includen würde:

<?php
echo "Hallo";
?>
 
Das Teil macht nix anders als neuste Bilder anzuzeigen und einen Link zum Ursprung zu setzen. Wieso gibt es keine Möglichkeit includes innerhalb aller domains die auf einem Server (über die IP z.B.) liegen zuzulassen und nur die von aussen zu ignorieren. :mad: Das wäre am einfachsten.
Ich probiere das mal so.
Mir ist bei ISP etwas aufgefallen. An das Feld Settings kam ich nur weil ich in dem Feld bei traffic Quota etwas anderes als 0 eingetragen habe, ansonsten sind die Felder Settings/Umleitungen/ssl/Statistiken nicht erreichbar. Kriege eine Fehlermeldung das dort ein Wert stehen muss.
Was muss eigentlich bei Settings openbasedir in der Zeile stehen? Muss da überhaupt etwas rein? Nur für die betreffende Domain oder auch für eine weitere??

Ich habe unter Settings nur ein Feld das sich Apache Direktiven heißt. Dort habe ich mal beide Werte eingetragen. Also
allow_url_include = ON
allow_url_fopen = ON
Fehlermeldung bleibt.
Und als ich Apache neu starten wollte ging das nicht weil ein syntax error kommt.



-bash: etc/init.d/apache2: Datei oder Verzeichnis nicht gefunden
apt:~# /etc/init.d/apache2 restart
Restarting web server: apache2We failed to correctly shutdown apache, so we're now killing all running apache processes. This is almost certainly suboptimal, so please make sure your system is working as you'd expect now! (warning).
... waiting .Syntax error on line 68 of /etc/apache2/sites-enabled/domain.com.vhost:
Invalid command 'allow_url_include', perhaps misspelled or defined by a module not included in the server configuration
failed!
apt:~#
 
Zuletzt bearbeitet:

Till

Administrator
Das Teil macht nix anders als neuste Bilder anzuzeigen und einen Link zum Ursprung zu setzen. Wieso gibt es keine Möglichkeit includes innerhalb aller domains die auf einem Server (über die IP z.B.) liegen zuzulassen und nur die von aussen zu ignorieren. Das wäre am einfachsten.

Sieh Dir bitte nochmal genau meinen Post an. Wenn das Script html code ausgibt, dann kannst Du es auch garnicht mit include so einbinden.

Ich denke mal dass Du das Problem falsch angehst und hier eigentlich ein programmierfehler vorliegt und kein Konfigurationsproblem. Mal angenommen das Script whats_new_galerie.php gibt html aus und Du möchtest es in Deine Seite einbinden, dann ist include der völlig flasche Befehl. include dient zum einbinden von noch nicht interpretiertem PHP code zur Ausführeung im lokalen script.

Was Du vermutlich haben möchtest, geht so:

readfile('http://domain.com/whats_new_galerie.php');

Zu Deiner Frage warum Du es nicht auf eine IP beschränken kannst musst Du Dich an die PHP Entwickler wenden. Generell sollte man niemails ein URL include machen da es super unsicher, deshalb ist das auch deaktiviert.

Mir ist bei ISP etwas aufgefallen. An das Feld Settings kam ich nur weil ich in dem Feld bei traffic Quota etwas anderes als 0 eingetragen habe, ansonsten sind die Felder Settings/Umleitungen/ssl/Statistiken nicht erreichbar. Kriege eine Fehlermeldung das dort ein Wert stehen muss.

Das ist ja auch völlig richtig, denn 0 ist kein gültiger Wert. Gültige Werte sind -1 für unlimitiert und ein Wert > 0 wenn Du ein Traffic Limit setzen willst.

Was muss eigentlich bei Settings openbasedir in der Zeile stehen? Muss da überhaupt etwas rein? Nur für die betreffende Domain oder auch für eine weitere??

Da sollte immer was drin stehen, denn es handelt sich um eine wichtige Sicherheitseinstellung. Die richtigen Werte werden von ispconfig dort automatisch für das web eingetragen, so dass nur der zugriff auf Dateien in diesem web sowie auf das globale include Verzeichnis möglich sind. Benötigt man weitere Verzeichnisse, kann man die ja anfügen. Die einzelnen Felder sind auch alle im ISPConfig Handbuch beschrieben.
 
jetzt habe ich ein Problem.
Apache hat sich aufgehängt. Reboot des server gemacht aber apache startet nicht.


l


apt:~# bash: -bash:: command not found
-bash: bash:: command not found
apt:~# apt:~# apt:~# /etc/init.d/apache2 restart
-bash: apt:~#: command not found
-bash: apt:~#: command not found
apt:~# -bash: apt:~#: command not found
apt:~# Restarting web server: apache2Syntax error on line 68 of /etc/apache2/sites-enabled/domain.com.vhost:
-bash: -bash:: command not found
apt:~# apt:~# Restarting web server: apache2Syntax error on line 68 of /etc/apache2/sites-enabled/domain.com.vhost:
-bash: apt:~#: command not found
apt:~# -bash: Restarting: command not found
-bash: -bash:: command not found
apt:~# apt:~# Invalid command 'allow_url_include', perhaps misspelled or defined by a module not included in the server configuration
-bash: apt:~#: command not found
apt:~# -bash: Invalid: command not found
-bash: -bash:: command not found
apt:~# apt:~# failed!
-bash: apt:~#: command not found
apt:~# -bash: failed!: command not found
-bash: : unrecognized history modifier
apt:~#
 

Till

Administrator
Scheint so als ob Du eine php.ini Direktive in das apache Direktiven Feld eingefügt hast, wodurch apache nicht mehr starten kann. In der Fehlermeldung steht ja die Datei und Zeile, also entfern sie dort uund starte apache wieder. Danach entfernst Du sie auch in ispconfig, wo Du sie ins apache direktiven feld eingefügt hast.
 

Till

Administrator
Wieso das, hast Du es denn nicht durch readfile ersetzt?

Ich würde Dir zudem empfehlen dass Du Dir mal das php manual ansiehst, wofür include da ist und wofür eben nicht. Dann wisrt Du auch sehen, warum ein include über http nicht sinnvoll ist und es daher auch niemand verwendet.
 

Till

Administrator
Dann hast Du wahrscheinlich noch nicht URL fopen aktiviert. Öffne die php.ini und setze:

allow_url_fopen = On

dann starte apache neu.
 
Jetzt habe ich erstmal andere Probleme. Komme via FTP nicht mehr an die Domain und die Webseite kommt auch nicht

You don't have permission to access / on this server.
Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.
Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny8 with Suhosin-Patch mod_ssl/2.2.9 OpenSSL/0.9.8g Server at domain.com Port 80

So ein Rechte Problem. Vorher hatte ich schon Probleme mit der Fehlermeldung das ein Verzeichnis web6/tmp nicht existieren würde, aber es war definitiv vorhanden
 

Werbung

Top