Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

PHP => require => open_basedir restriction

Empfohlene Antworten

Veröffentlicht

Hallo Leutz,

wieder mal ein PHP Prob.

Ich bastle grad ein bißchen rum und versuche ein *.INC.PHP file mit require einzubinden.

Dazu hab ich mir ein kl. Script getippst:

<?

$u = $HTTP_GET_VARS["u"];

require($u);

?>

so wenn ich jetzt das script (r.php) aufrufe kommt folgende meldung:

Warning: open_basedir restriction in effect. File is in wrong directory in /usr/local/httpd/htdocs/kunden/web2/html/r.php on line 4

Fatal error: Failed opening required '1' (include_path='.:/usr/lib/php') in /usr/local/httpd/htdocs/kunden/web2/html/r.php on line 4

.

Wie man sehen kann ist das ein Linux. In der PHP.INI ist "safe_mode" auf "OFF"!

Ach ja das .INC.PHP -FIle das ich einbinden will liegt am gleichen server blos in einem anderem Webroot.

Aufruf also: htp://meinserver.de/r.php?u=htp://meinserver_aber_andere_domain/inc.php

weiß wer was?

ciao

r00t@l0calh0st

Dein include-Pfad ist falsch.

In deiner php.ini steht ein andere Pfad als das aktuelle Verzeichnis.

Problem 1: du must den neuen Pfad angeben

ini_set("include_path","$Pfad")

Problem 2: resultiert aus dem 1. -> du hast keinen Zugriff auf dieses Verzeichnis, da es außerhalb des Webservers liegt.

Gib in deiner php.ini doch beim Eintrag include_path = "./" an, dann kannst du mir dem ersten Schritt auch probemlos arbeiten.

==> dies ist keine Hotline --> die Leute die Antworten tun dies wann sie wollen und können

  • Autor

hi

DANKE für deine antwort.

in der php.ini steht gar nix von einem include_path bzw. es ist auskommentiert!

wenn man die set_ini funktion aufruft wird das dann in der Datei php.ini geändert oder blos für das script das den befehl ausführt, geändert? hab leider die funktion im phpmanual nicht gefunden...

ach ja und

==> dies ist keine Hotline --> die Leute die antworten, tun dies wann sie wollen und können

soso wirklich, das is mir aber gaaanz neu....

tut mir leid das ich sooo aggressiv und soo provokant gepostet habe....

also jetzt wieda :e@sy

merci

ciao

  • Autor

vorherige frage wegen set_ini hat sich erledigt. in der .ini -datei wird nichts geändert.

so jetzt binde ich mit require($url) das .inc.php - script ein. aber ich kann leider noch nicht auf die variablen die darin festgelegt sind zugreifen.

es gibt auch keine fehlermeldung mehr aus gar nix. die rechte auf das .inc.php script : -rw-r--r-- .

müßte doch eigentlich hinhaun oder?

danke für antworten

ciao

  • Autor

was´n das für´n link ;)

also das script mit dem ich einbinden will is eh oben.

das script das ich einbinden will sieht ungefähr so aus:

<?

$weeks=4;

$vorschau=1;

?>

das wars

und wenn ich mir jetzt vom obigen script eine der beiden variablen ausgeben lassen will. kommt nix.

vorschläge?

Hast du dir mal $u ausgeben lassen?

Ist $u ein String ?

Sonst fällt mir erst mal nix ein. Ich geb dir mal nen Auszug von mir:


extract($_REQUEST);
ini_set("include_path","./../CGI");
require("data.php");
[/PHP]

  • Autor

$u ist gesetzt, da sonst require($u) fehlschlagen würde.

$u wird (noch) als GET-Parameter mitgegeben: aufruf also

meinscript.php?u=htp://mein_sörva_aber_andere_domain/inc.php

also ist u : "htp://mein_sörva_aber_andere_domain/inc.php"

an dem liegts also nicht .

trotzdem danke für deine antworten

was macht eigentlich "extract($_REQUEST);" ?

ciao

r~~t@l~calh~st

Du darfst das einzubindenden File natuerlich nicht ueber http://.. includen, da es so zuerst vom Webserver geparst wird und dann das ergebnis (eine leere Seite) included wird.

Benutz statt http:// einfach den Pfadnamen im System.

Ach ja.. als tipp: Never Trust User Data :-)

Soll heissen, keine Daten die User direkt eingeben koennen ungeprueft verwenden (in system(), include(), ... anweisungen).

Michael

  • Autor

aah ja . denkfehler von mir. wird ja dann vorher schon geparst.

zszsz :rolleyes:

Never Trust User Data :-)

ja danke aber da bin ich schon vorsichtig geworden.

wenn man mal n´bisschen googelt findet man da die wildesten dinge mit php also

...php?file= oder ...php?path= usw.

jeder weiß wahrscheinlich was man da dann machn kann.... (...passwd o. shadow holen... eigenen phpcode ausführen...)

also danke für alle antworten

ciao

r°°t@l°calh°st

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.