Zitat von
messie:
Zitat von
Dezipaitor:
Das ist schon okay so, denn ein Benutzer soll ja nicht eine Datei eines anderen Benutzers einsehen dürfen (oder sogar löschen).
Die Frage ist, was willst du einen anderne Benutzer erlauben? Soll der andere Benutzer lesen dürfen? Oder soll er auch schreiben dürfen. Letzteres könnte ein Sicherheitsrisiko darstellen (z.B. weil die Datei durch ein Virus ersetzt wird).
Wozu habe ich denn einen Ordner "Gemeinsame Dokumente" (oder "Öffentlich" bei Vista), wenn nicht mehrere user da rein schreiben können. Eine Textdatei, in der einer nur Lesen kann, ist kein gemeinsames Dokument. Ich bin auch am überlegen, ob es das Unterverzeichnis ist, auf das nicht zugegriffen werden darf.
Gemeinsame Dokumente sind für normale Benutzer, damit diese untereinander Daten schnell austauschen können! Es ist nicht dafür gedacht, dass Programme es als Kommunikation für ihre Zwecke nutzen. Dazu gibt es bessere und sichere Mittel (z.B.
IPC und
COM).
Lies mal, was Raymond Chen, ein langjähriger MS Mitarbeiter, dazu
schreibt.
Du machst nämlich genau das was Chen anprangert.
Dein Programm schreibt als Administrator die Datei in "Gemeinsame Dokumente" und gibt diese Datei für alle frei. Chen listet diese Problempunkte auf, die daraus resultieren:
- Jeder kann diese Datei beschreiben und somit das Programm eines anderen Benutzers zum Absturz bringen.
- Viren einschleusen, denn jeder kann die Datei umbenennen, z.b. in "Dein geforderter Bericht, John.pdf.exe"
- NTFS Alternate Data Streams benutzen, um zusätzliche Daten zu speichern.
- Admindateien sind nicht an die Speicherplatzbeschränkung gebunden. D.h. jeder Benutzer kann beliebig vielen Speicher verbrauchen und das System zu Stillstand bringen.
Du siehst, dass du im Begriff bist ein Sicherheitslücke zu entwickeln!
Zitat von
messie:
Zitat von
Dezipaitor:
Eine NULL-DACL erlaubt für alle den vollen Zugriff. MS rät davon tunlichst ab.
Das mache ich sonst auch so. Nur kann ich das noch nicht programmtechnisch. Ich benutze Installshield dazu, da kann ich den Zugriff auf everyone mit vollen Rechten setzen. Nur kennt der Windows Installer keine "Gemeinsame Dokumente".
Die
JWSCL schaue ich mir mal an. Hoffentlich läuft das auch mit D6.
Das müsste ja die ganzen
API-Sachen kapseln, oder?
Grüße, Messie
Nein, nicht alle
API Sachen. Nur eine
Untermenge
D6 wird
noch unterstützt.