lampp und svg

Irgendwelche Probleme mit XAMPP für Linux? Dann ist hier genau der richtige Ort um nachzufragen.

lampp und svg

Postby hgsoft » 05. January 2009 01:05

Hallo zusammen,

ich spiele schon seit Jahren mit Xampp für Windows (98 und XP) und habe jetzt den xampp-linux 1.7 auf Suse 11.0 laufen.
(die Installation des Apache mit Mysql erfordert ja einiges trotz Unix- und Linux-Kenntnissen)

Da ich aus dem CAD-Bereich komme interessiert mich vor allem Graphik und im www natürlich svg.

In der Datei /opt/lampp/etc/mime.types fehlt der Eintrag
image/svg+xml svg

Nach Änderung der Datei zeigt Firefox auch die svgs an.

Ich schraube mit php menügesteuert *.svg's zusammen (alles im Hintergrund) und zeige diese on the fly innerhalb von <object> -tags an.
Die svg-Dateien werden dabei ständig neu erstellt und liegen in einem Verzeichnis ../htdocs/.../drawings
Das Vezeichnis hat die Rechte 755 aber die Dateien selbst müssen beschreibbar sein, also 766.
Der user kennt diese Dateien und Verzeichnisse nicht. Kann es trotzdem ein Problem mit den Schreibrechten geben?
Ist das eine potentielle Sicherheitslücke?

Für Hinweise oder Tips wäre ich dankbar

mfg
hgsoft
hgsoft
 
Posts: 3
Joined: 05. January 2009 00:00

Re: lampp und svg

Postby Nobbie » 05. January 2009 13:16

hgsoft wrote:Das Vezeichnis hat die Rechte 755 aber die Dateien selbst müssen beschreibbar sein, also 766.


Was heißt "müssen beschreibbar sein"? In welchem Kontext? Wer oder was muss schreiben können? Außerden ist 766 kryptisch - denn 7 heißt u.a. "ausführbar" - aber es sind ja nur Grafiken, keine ausführbaren Programme. Warum also nicht 666, oder (um auf die erste Frage zurückzukommen), warum nicht 644?

hgsoft wrote:Der user kennt diese Dateien und Verzeichnisse nicht. Kann es trotzdem ein Problem mit den Schreibrechten geben?
Ist das eine potentielle Sicherheitslücke?


Welcher "user" in welchem Kontext? Ein Client des Webservers "weiß nichts" von Schreibrechten auf dem Dateisystem des Servers - entweder kann der Prozess Apache eine Datei schreiben im Dateisystem oder nicht, dabei spielt keine Rolle, durch welche Rechte dieses gewährleistet wird - aber ein "User" in einer Multiuser-Umgebung wie Linux könnte diese Dateien schreiben, selbst wenn Apache es nicht könnte. Wobei durch 766 jeder User auf dem Rechner diese Datei beschreiben darf - ist das gewollt und notwendig (s.o.)?

Wenn Du Deinen Rechner alleine benutzt, ist das kein Problem. Wenn Du ihn mit Dritten teilst, könnte es ein Problem werden.
Nobbie
 
Posts: 13175
Joined: 09. March 2008 13:04

Re: lampp und svg

Postby hgsoft » 06. January 2009 01:44

Nobbie wrote:Was heißt "müssen beschreibbar sein"? In welchem Kontext? Wer oder was muss schreiben können? Außerden ist 766 kryptisch - denn 7 heißt u.a. "ausführbar" - aber es sind ja nur Grafiken, keine ausführbaren Programme. Warum also nicht 666, oder (um auf die erste Frage zurückzukommen), warum nicht 644?


Ausschnitt aus der php-Datei:
Code: Select all
$fp=fopen("./drawings/user_graph.svg", "w");
fwrite($fp,("<?xml version=\"1.0\" standalone=\"yes\"?>\n"));
... hier das komplette svg schreiben ...
fwrite($fp,("</svg>"));
fclose($fp);
... unten wird das SVG angezeigt ...
echo '<object data="./drawings/user_graph.svg" type="image/svg+xml" width="660" height="660" border="1">';
echo '<param name="src" value="./drawings/user_graph.svg">';
echo '</object>';


Die svg-Datei wird bei jedem Aufruf neu geschrieben.
Da der lampp unter dem user 'nobody' läuft muß 'nobody' schreiben können.
Also 646 ?

Das mit dem Zugriff auf den Server ist klar.
Danke
hgsoft
 
Posts: 3
Joined: 05. January 2009 00:00

Re: lampp und svg

Postby glitzi85 » 06. January 2009 19:34

Damit der Benutzer nobody auf Dateien im Verzeichnis drawings erstellen darf, muss eben dieses Verzeichnis für den Benutzer nobody alle rechte haben. Ansonsten läuft das nicht.

Beispiele:
Code: Select all
drwxr-xr-x  2 nobody root     1024 Dec 10 17:30 drawings
dr-xrwxr-x  2 root   nogroup  1024 Dec 10 17:30 drawings
dr-xr-xrwx  2 root   root     1024 Dec 10 17:30 drawings


Eine von diesen drei Möglichkeiten musst du eingestellt haben, sonst funktioniert das ganze nicht.

mfg glitzi
User avatar
glitzi85
 
Posts: 1920
Joined: 05. March 2004 23:26
Location: Dahoim

Re: lampp und svg

Postby hgsoft » 11. January 2009 22:10

Eine von diesen drei Möglichkeiten musst du eingestellt haben, sonst funktioniert das ganze nicht.

bei mir ist alles root:root bis auf die htdocs

Code: Select all
drwxr-xr-x   5 nobody root   192 Jan  3 23:17 htdocs
drwxr-xr-x   2 root   root 112 Jan  4 20:15 drawings
-rw-r--rw-   1 root root 11172 Jan  8 13:59 user_graph.svg

und so funktionierts.
hgsoft
 
Posts: 3
Joined: 05. January 2009 00:00

Re: lampp und svg

Postby glitzi85 » 12. January 2009 03:27

Was funktioniert so?

Code: Select all
drwxr-xr-x   5 nobody root   192 Jan  3 23:17 htdocs

Darin kann der Apache alles machen was er will

Code: Select all
drwxr-xr-x   2 root   root 112 Jan  4 20:15 drawings

Darin kann der Apache höchstens lesen. Er kann garantiert nichts drin erstellen.

Code: Select all
-rw-r--rw-   1 root root 11172 Jan  8 13:59 user_graph.svg

Die Datei kann von jedermann bearbeitet werden.

Jetzt kommt es natürlich noch drauf an wo genau diese Dateien und Ordner liegen. Deine letzte Ausgabe deute ich so, dass drawings parallel zu htdocs liegt, in deinem ersten Post sieht es aber so aus, dass es innerhalb von htdocs liegt (ebenso in dem Code-Teil). Wo genau liegen denn jetzt deinen Dateien?

Wichtig ist vor allem zu verstehen, dass Dateien erstellen / löschen und Dateien bearbeiten zwei völlig unterschiedliche Rechte sind. Um Dateien erstellen oder löschen zu können, benötigt der Benutzer Schreibrechte auf den Ordner, in dem die Datei erstellt werden soll, um eine Datei zu ändern, muss er lediglich Schreibrechte auf die Datei selber haben.

mfg glitzi
User avatar
glitzi85
 
Posts: 1920
Joined: 05. March 2004 23:26
Location: Dahoim


Return to XAMPP für Linux

Who is online

Users browsing this forum: No registered users and 107 guests