![]() |
[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 ;) ![]() |
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. |
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. |
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? ![]() |
Re: [PHP] Safemode
Zitat:
|
Re: [PHP] Safemode
Zitat:
![]() Zitat:
|
Re: [PHP] Safemode
Zitat:
|
Re: [PHP] Safemode
Zitat:
Zitat:
|
Re: [PHP] Safemode
Zitat:
aber bei wirklich allen systemen mit safe mode - und ich kenn doch ein paar - war das mit dem chmod so! einfach mal überprüfen... |
Re: [PHP] Safemode
Es ist möglich die Zugriffrechte auf 777 zu stellen ;)
Code:
Aber touch() funktioniert trozdem nicht innerhalb des Verzeichnisses :(
mkdir($dasverzeichniss, 0777); // Rechte sind dann aber 755 :?
chmod($dasverzeichniss, 0777); // Jetzt auf 777 :D ![]() |
Re: [PHP] Safemode
Zitat:
Zitat:
|
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:
![]() |
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 -.- |
Re: [PHP] Safemode
Zitat:
Zitat php.net
Code:
ist also sehr sekundär, das datei erstellen feature dieser funktion!
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. vielleicht versuchst dus mal mit
Code:
ist aber dummerweise denk ich nur für temp. dateien, weis aber net sicher. sonst fällt mir auch nix ein...
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. |
Re: [PHP] Safemode
Zitat:
![]() |
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.
|
Re: [PHP] Safemode
|
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); |
Re: [PHP] Safemode
|
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: |
Re: [PHP] Safemode
Zitat:
Ich hab jetzt einfach nur ein Mainordner der schon erstellt ist genommen... Ist zwar viel umstänlicher, aber es geht :) ~Thema ist hiermit erledigt~ ![]() |
Re: [PHP] Safemode
Zitat:
|
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:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz