Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Safemode (https://www.delphipraxis.net/31004-%5Bphp%5D-safemode.html)

sCrAPt 2. Okt 2004 14:46


[PHP] Safemode
 
HiHo
Ich kämpfe gerade wieder mit dem Savemode von PHP rum :twisted: Warum gibts den überhaupt und was macht der eigentlich ausser mir Alles verweigern?

//@himitsu: Nein, ich werde ihn nicht deaktivieren lassen ;)

http://og4all.de/s.jpg, sCrAPt

himitsu 2. Okt 2004 14:53

Re: [PHP] Savemode
 
Im Grunde genommen schützt der den Provider vor bescheuerten Usern, die es darauf anlegen den Server lamzulegen (egal ob absichtlich, oder aus Dummheit)

PS: frag mal deinen Provider, ob er diesen eventuell für dich deaktiviert ... bei mir hatte es es auch gemacht ... er ist ganz nett ;)

Oder du sagst mal was Probleme macht - für einiges gibt es 'ne Art Umgehung, damit es dennoch geht.

fiasko 2. Okt 2004 14:55

Re: [PHP] Savemode
 
Hallo,

wenn PHP als Modul im Kontext des WWW-Server-Nutzers läuft und nicht nur vertrauenswürdige Personen PHP-Skript reinstellen können ist das ein imenses Sicherheitsproblem (Server killen, HTTPS Zert. auslesen, etc....). Der Savemod ist theoretisch gedacht damit man Funktionen einschränken kann mit denen böse Leute eben sowas machen könnten bzw. Funktionen auf bestimmte Verzeichnisse beschränken.

Ich persönlich halte davon nix - schließlich erlaubt man erstmal ALLES und verbietet dann nur ein paar Funktionen... und vielleicht vergißt man ja ein paar.

Wenn PHP-Skripte als CGI's laufen hat man die Probleme nicht, ist zwar Ressourcen-Aufwendiger aber dank suexec können die dann im Kontext des Benutzers laufen (und der muß sich nicht mit sinnlosen Einschränkungen rumschlagne.

sCrAPt 2. Okt 2004 19:34

Re: [PHP] Safemode
 
Und wie genau macht er das? Ich z.B. habe mit mkdir() ein Verzechniss (mit Chmodrechten 777) erstellt und möchte in dem Ordner eine Datei via touch() erstellen. Jetzt kommt aber der Safemode und sagt "du bist unartig :warn: ".
Gibt der mkdir() dem Ordner ein "Safemode-Flag" oder wie stellt er fesst dass ich den Ordner via PHP erstellt habe?

http://og4all.de/s.jpg, sCrAPt

Meflin 2. Okt 2004 20:19

Re: [PHP] Safemode
 
Zitat:

Zitat von sCrAPt
Und wie genau macht er das? Ich z.B. habe mit mkdir() ein Verzechniss (mit Chmodrechten 777) erstellt und möchte in dem Ordner eine Datei via touch() erstellen. Jetzt kommt aber der Safemode und sagt "du bist unartig :warn: ".
Gibt der mkdir() dem Ordner ein "Safemode-Flag" oder wie stellt er fesst dass ich den Ordner via PHP erstellt habe?

http://og4all.de/s.jpg, sCrAPt

ich glaube eher dass das datei erstellen prinzipiell in jedem ordner vom safe mod geblockt wird. ich persönlich bin froh dass der bei meinem provider aus ist...

tommie-lie 2. Okt 2004 20:26

Re: [PHP] Safemode
 
Zitat:

Zitat von sCrAPt
Und wie genau macht er das?

Durhc überprüfen der UIDs (http://www.phpbuilder.com/manual2/ma....safe-mode.php).

Zitat:

Ich z.B. habe mit mkdir() ein Verzechniss (mit Chmodrechten 777) erstellt und möchte in dem Ordner eine Datei via touch() erstellen. Jetzt kommt aber der Safemode und sagt "du bist unartig :warn: ".
Wenn mkdir() vom gleichen Script ausgeführt wurde und mkdir() fehlerfrei durchgelaufen ist, sollte ein touch() auch keine Probleme machen. Genauso wenig wenn wenn du als User das Verzeichnis erstellt hast und auch das Script, und der Ordner ebenfalls. Daß ein touch() auf Dateien, die dir gehören, in einem Verzeichnis, das dir gehört, fehlschlägt, sollte also eigentlich nicht vorkommen...

Meflin 2. Okt 2004 20:28

Re: [PHP] Safemode
 
Zitat:

Zitat von tommie-lie
Zitat:

Zitat von sCrAPt
Und wie genau macht er das?

Durhc überprüfen der UIDs (http://www.phpbuilder.com/manual2/ma....safe-mode.php).

Zitat:

Ich z.B. habe mit mkdir() ein Verzechniss (mit Chmodrechten 777) erstellt und möchte in dem Ordner eine Datei via touch() erstellen. Jetzt kommt aber der Safemode und sagt "du bist unartig :warn: ".
Wenn mkdir() vom gleichen Script ausgeführt wurde und mkdir() fehlerfrei durchgelaufen ist, sollte ein touch() auch keine Probleme machen. Genauso wenig wenn wenn du als User das Verzeichnis erstellt hast und auch das Script, und der Ordner ebenfalls. Daß ein touch() auf Dateien, die dir gehören, in einem Verzeichnis, das dir gehört, fehlschlägt, sollte also eigentlich nicht vorkommen...

ich würde dann mal nachfragen ob der touch befehl vielleicht gesperrt ist!? desweiteren ist es eigentlich bei aktiviertem safe mode state of the art dass man nix mit chmod 777 erstellen kann - bist du dir sicher dass das der fall ist? ich bekam nämlich keine fehlermeldung, musste aber im ftp modus feststellen, dass das verzeichnis nicht chmod 777 hatte sondern nur die standardrechte!

tommie-lie 2. Okt 2004 20:35

Re: [PHP] Safemode
 
Zitat:

Zitat von Meflin
desweiteren ist es eigentlich bei aktiviertem safe mode state of the art dass man nix mit chmod 777 erstellen kann

Echt? Davon ist mir nichts bekannt und dokumentiert ist es AFAICS auch nicht.

Zitat:

Zitat von Meflin
bist du dir sicher dass das der fall ist?

Ich? Nö :mrgreen:

Meflin 2. Okt 2004 20:38

Re: [PHP] Safemode
 
Zitat:

Zitat von tommie-lie
Zitat:

Zitat von Meflin
desweiteren ist es eigentlich bei aktiviertem safe mode state of the art dass man nix mit chmod 777 erstellen kann

Echt? Davon ist mir nichts bekannt und dokumentiert ist es AFAICS auch nicht.

Zitat:

Zitat von Meflin
bist du dir sicher dass das der fall ist?

Ich? Nö :mrgreen:

nunja dich meinte ich auch eher weniger ;-)
aber bei wirklich allen systemen mit safe mode - und ich kenn doch ein paar - war das mit dem chmod so! einfach mal überprüfen...

sCrAPt 2. Okt 2004 20:53

Re: [PHP] Safemode
 
Es ist möglich die Zugriffrechte auf 777 zu stellen ;)
Code:
mkdir($dasverzeichniss, 0777); // Rechte sind dann aber 755 :?
chmod($dasverzeichniss, 0777); // Jetzt auf 777 :D
Aber touch() funktioniert trozdem nicht innerhalb des Verzeichnisses :(

http://og4all.de/s.jpg, sCrAPt

tommie-lie 2. Okt 2004 20:58

Re: [PHP] Safemode
 
Zitat:

Zitat von Meflin
nunja dich meinte ich auch eher weniger ;-)

Schon klar, aber du hast mich zitiert, da konnte ich einfach nicht wiederstehen ;-)

Zitat:

Zitat von Meflin
aber bei wirklich allen systemen mit safe mode - und ich kenn doch ein paar - war das mit dem chmod so! einfach mal überprüfen...

Hmm, ich kann bei mir in einem PHP-Script anscheinend gar kein chmod() ausführen, allerdings steht in der Fehlermeldung auch nicht von safe_mode, obwohl dieses Modul ja immer eigene Fehlermeldungen generiert. Aber safe_mode ist schon aktiviert, das ist richtig.

sCrAPt 2. Okt 2004 23:12

Re: [PHP] Safemode
 
:| was bringt mir denn ein erstelltes verzeichniss wenn ich da nix rein tun kann!? da haben sich die PHP-Progger aber mal echt was blödes zusammengeproggt :roll:

http://og4all.de/s.jpg, sCrAPt

himitsu 2. Okt 2004 23:52

Re: [PHP] Safemode
 
Also ich bin ja beim selben Provider und "fast" alles, was im selben Verzeichnis abläuft, wo auch das Script ist, das funktioniert, aber sobald man versucht was außerhalb zu machen wars das ...

Der Verzeichnis erstellen und die Rechte dafür ändern zählt ja noch zum selben Verzeichnis, da dort ja die entsprechenden Daten drin gespeichert sind -.-

Meflin 3. Okt 2004 11:41

Re: [PHP] Safemode
 
Zitat:

Zitat von sCrAPt
Und wie genau macht er das? Ich z.B. habe mit mkdir() ein Verzechniss (mit Chmodrechten 777) erstellt und möchte in dem Ordner eine Datei via touch() erstellen. Jetzt kommt aber der Safemode und sagt "du bist unartig :warn: ".
Gibt der mkdir() dem Ordner ein "Safemode-Flag" oder wie stellt er fesst dass ich den Ordner via PHP erstellt habe?

http://og4all.de/s.jpg, sCrAPt

btw: um eine datei zu erstellen, ist touch ja nicht gerade der direkte weg oder?
Zitat php.net
Code:
Beschreibung
int touch ( string filename [, int time [, int atime]])


Setzt Datum und Uhrzeit der letzten Änderung und des letzten Zugriffs der durch filename spezifizierten Datei auf den durch time spezifizierten Wert. Wenn die Option time nicht angegeben wurde, wird die aktuelle Zeit benutzt. Dies ist äquivalent zu dem, was utime tut (manchmal wird auch als utimes davon gesprochen). Ist die dritte Option atime angegeben, so wird die Zugriffszeit auf atime gesetzt. Beachten Sie, dass die Zugriffszeit unabhängig von der Anzahl der Parameter stets modifiziert wird.

Wenn die Datei nicht existiert, wird sie erzeugt.
ist also sehr sekundär, das datei erstellen feature dieser funktion!
vielleicht versuchst dus mal mit
Code:
Beschreibung
string tempnam ( string dir, string prefix)


Erzeugt eine Datei mit einem eindeutigen Dateinamen in dem spezifizierten Verzeichnis. Wenn das Verzeichnis nicht existiert, erstellt tempnam() eine Datei im temporären Verzeichnis des Systems, und gibt den Dateinamen zurück.

Vor PHP 4.0.6 war das Verhalten von tempnam() systemabhängig. Unter Windows wird die TMP-Umgebungsvariable den dir Parameter überschreiben, unter Linux-Systemen hat die TMPDIR Umgebungsvariable Vorrang, während SVR4 immer den spezifizierten Verzeichnisnamen benutzen wird, wenn dieses existiert. Wenn Sie nicht genau wissen, wie Ihr System tempnam() behandelt, dann konsultieren Sie bitte Ihre System-Dokumentation.
ist aber dummerweise denk ich nur für temp. dateien, weis aber net sicher. sonst fällt mir auch nix ein...

sCrAPt 3. Okt 2004 12:44

Re: [PHP] Safemode
 
Zitat:

Zitat von Meflin
btw: um eine datei zu erstellen, ist touch ja nicht gerade der direkte weg oder?

Ich hab noch nie was von einem anderen Weg gehört, und mit temp. Dateien kann ich nüx anfagen :(

http://og4all.de/s.jpg, sCrAPt

fiasko 3. Okt 2004 12:53

Re: [PHP] Safemode
 
Um eine leere Datei zu erstellen ist touch the-normal-way-of-life in Linux/Unix Umgebungen, folglich hat das auch in PHP Einzug erhalten.

sCrAPt 3. Okt 2004 14:55

Re: [PHP] Safemode
 
gibt es noch einen anderen Befehl um eine Datei zu erstellen?

http://og4all.de/s.jpg, sCrAPt

himitsu 3. Okt 2004 21:49

Re: [PHP] Safemode
 
wie wäre es, wenn du 'ne Datei im Schreibmodus öffnest ... das funktioniert wunderbar (jetzt zumindestens) :zwinker:

Code:
$fp = fopen("DeineDa.tei", "w");
...
fclose($fp);

sCrAPt 4. Okt 2004 20:01

Re: [PHP] Safemode
 
Nur sperrt der Safemode auch fopen() :cry:

http://og4all.de/s.jpg, sCrAPt

tommie-lie 4. Okt 2004 20:47

Re: [PHP] Safemode
 
Sag mal, wie bescheuert ist dein Server eigentlich konfiguriert?
Ein "normaler" Safemode macht sowas nicht...
Sowas ist ja schon fast bösartig :roll:

sCrAPt 5. Okt 2004 12:55

Re: [PHP] Safemode
 
Zitat:

Zitat von tommie-lie
Sag mal, wie bescheuert ist dein Server eigentlich konfiguriert?

Er ist aus Mangel von Finanzierungsmitteln nicht meiner :(
Ich hab jetzt einfach nur ein Mainordner der schon erstellt ist genommen... Ist zwar viel umstänlicher, aber es geht :)

~Thema ist hiermit erledigt~

http://og4all.de/s.jpg, sCrAPt

tommie-lie 5. Okt 2004 13:10

Re: [PHP] Safemode
 
Zitat:

Zitat von sCrAPt
Zitat:

Zitat von tommie-lie
Sag mal, wie bescheuert ist dein Server eigentlich konfiguriert?

Er ist aus Mangel von Finanzierungsmitteln nicht meiner :(

So war das auch nicht gemeint ;-)

himitsu 5. Okt 2004 23:47

Re: [PHP] Safemode
 
Wenn du wüstest @Tommy

Beim letzten Confixx-Update haben die z.B. auch die Rechtestruktur und einiges anders gleich mit extrem verändert ... womit ein Teil meiner Seite nicht mehr lief, weil Beispielsweise dir/opendir nicht mehr so liefen, wie sie sollten weil wegen der neuen Rechteverwalung jetzt einige dr Rechte (chmod) falsch vergeben waren ... die Folge ... kein Schreibzugriff auf bestimmte Dateien mehr möglich.
Und meine .htaccess-Problem haben ja auch einige mitbekommen ... dort läuft auch einiges nicht so, wie bei überall beschrieben.

Und das Problem zu diesem Thema ist halt, dass ein schreibender/löschender Zugriff auf Dateien/Verzeichnisse außerhalb der aktuellen Verzeichnisses nicht/schwer möglich ist - es sei den man verwendet das spezielle Files-Verzeichnis, was aber von außen (z.B. via http) nicht abrufbar ist...


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz