Sicherheit der spk-Anwendungen

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

Matthieu

Benutzer
Registriert
03. Nov. 2008
Beiträge
13.222
Reaktionspunkte
88
Punkte
344
Hallo Leute,
die Sicherheit der Anwendungen welche u.a. von unserer Community erstellt werden, wird häufig diskutiert.
Eine Anleitung dazu findet sich in unserem Wiki, wo geraten wird, ein "403 Forbidden" im header der Antwort zu senden, wenn die Authentifizierung fehlgeschlagen ist.
Das Problem daran: Für den Webserver ist keine entsprechende Fehlermeldung hinterlegt und Firefox scheint keine bereit zu halten, jedenfalls bekomme ich immer nur eine leere Seite. Diese Lösung ist also suboptimal.
Alternativen die mir eingefallen sind:

  • In jeder Anwendung mittels htaccess eine 403 verlinken und die Fehlerseite mit in die Anwendung hängen;
  • Eine kurze (aber dafür wenig informative/hilfreiche) Textmeldung ausgeben;
  • Eine gemeinsame Vereinbarung treffen, wo die Fehlermeldung liegen wird, eventuell mit in ein häufig genutztes Paket wie init_3rdparty einbauen (obwohl recht umständlich, also wohl nicht zu favorisieren),
  • Eine Alternative finden um die Browser oder den Webserver dazu zu bringen eine Fehlermeldung auszugeben.
Was meint ihr?
Im Anhang hab ich mal ein solches Paket, in dem Fall itaris "AutoMate", wo ich die Authentifizierung eingefügt habe. Viele Pakete im Umlauf haben dieses Verfahren leider nicht, was riesige Sicherheitslecks nach sich zieht.
Denkt ihr es wäre sinvoll noch ein htaccess zusätzlich in die Pakete einzubauen?

MfG Matthieu
 

Anhänge

Der Text, der bei der Fehlerseite angezeigt wird, kannst du in der htaccess Datei frei bestimmen. Eine weisse Seite kriegst du nur wenn das error document nicht gefunden werden konnte und in der htaccess Datei nichts festgelegt ist (http://jendryschik.de/wsdev/fehlerseiten/)
 
Also wärest du dafür, in jedem spk eine htaccess samt Fehlerseite zu verankern? Genau das ist ja schließlich das Problem: Der Browser fühlt sich nicht angesprochen und eine htaccess ist eigentlich nicht Bestandteil einer spk-Anwendung.

MfG Matthieu
 
Genau das ist ja schließlich das Problem: Der Browser fühlt sich nicht angesprochen und eine htaccess ist eigentlich nicht Bestandteil einer spk-Anwendung.

MfG Matthieu
Wieso sollte sich der Browser nicht angesprochen fühlen? Das ist eigentlich eine serverseitige Einstellung. Btw: welcher Browser legt sich denn quer? Ich nehme mal an der IE, oder? Bei dem ist afaik speziell, dass er die Seite nur anzeigt, wenn sie eine Mindestgrösse hat. Sonst wird die Default Fehlerseite des IE angezeigt (http://support.microsoft.com/default.aspx?scid=kb;en-us;Q294807)
 
Nein ich meine das anders. Einige Anwendungen schicken als Fehler nur einen header mit "403 Forbidden" zurück. Da aber auf der DS keine Fehlerseite hinterlegt ist und der Browser keine anzeigt, bekommt man nur eine weiße Seite was aber den Nutzer nicht darüber aufklärt, dass er sich erst anmelden muss. Und genau das will ich ja ändern, die Frage ist nur wie.

MfG Matthieu
 
Nein ich meine das anders. Einige Anwendungen schicken als Fehler nur einen header mit "403 Forbidden" zurück. Da aber auf der DS keine Fehlerseite hinterlegt ist und der Browser keine anzeigt, bekommt man nur eine weiße Seite was aber den Nutzer nicht darüber aufklärt, dass er sich erst anmelden muss. Und genau das will ich ja ändern, die Frage ist nur wie.

MfG Matthieu
Eben, trag einfach in die htaccess den Fehlercode (z.B. 403 oder 404) ein und dann den Text, der agezeigt werden soll. Dabei kann man in der htaccess Datei auch html-Code als String für die Fehlerseite angeben.
Wenn der Server also einen 403-er sendet, dann schaut er zuerst in die htaccess rein, was dort genau definiert ist. Ist nix definiert, dann wir nur ein 403-er Header geschickt und der Browser muss entscheiden was er anzeigt.
 
Also meinst du eine kurze Textmeldung wäre die beste Wahl? Gut, dann setze ich das demnächst mal um.

MfG Matthieu
 
Hi,
irgendwann ist mal dieses kurze Codefragment hier im Forum aufgetaucht und seitdem benutze ich das auch:
PHP:
putenv('HTTP_COOKIE='.$_SERVER['HTTP_COOKIE']);
putenv('REMOTE_ADDR='.$_SERVER['REMOTE_ADDR']);
$user = exec('/usr/syno/synoman/webman/modules/authenticate.cgi');
if ($user !== 'admin') {
     header("HTTP/1.1 403 Forbidden");
     exit;
}
Wenn man nun noch in den exit den Grund hineinschreibt, braucht man keine extra .htaccess:
PHP:
putenv('HTTP_COOKIE='.$_SERVER['HTTP_COOKIE']);
putenv('REMOTE_ADDR='.$_SERVER['REMOTE_ADDR']);
$user = exec('/usr/syno/synoman/webman/modules/authenticate.cgi');
if ($user !== 'admin') {
     header("HTTP/1.1 403 Forbidden");
     exit('403 Forbidden'); <----- hier
}
 
Wenn man nun noch in den exit den Grund hineinschreibt, braucht man keine extra .htaccess:
Und wie bindest du diesen Code ohne htaccess Datei in die PHP Files ein? Kopierst du den Code etwa in jedes File manuell rein? Da setze ich lieber einen globalen Wert für das Verzeichnis und stelle damit den Code alle PHP files voran ;)
 
Und wie bindest du diesen Code ohne htaccess Datei in die PHP Files ein? Kopierst du den Code etwa in jedes File manuell rein? Da setze ich lieber einen globalen Wert für das Verzeichnis und stelle damit den Code alle PHP files voran ;)
Das ist das geringere Problem. Ich werd das mit dem exit mal probieren, denn der Codeschnipsel von QTip ist ja genau den den ich verwende und dennoch bekomme ich nur eine weiße Seite wenn ich keine htaccess hinterlege.

MfG Matthieu
 
Das ist das geringere Problem. Ich werd das mit dem exit mal probieren, denn der Codeschnipsel von QTip ist ja genau den den ich verwende und dennoch bekomme ich nur eine weiße Seite wenn ich keine htaccess hinterlege.

MfG Matthieu
Zumindest der erste Schnippel erzeugt so sicher keine Ausgabe ;)
 
Da aber auf der DS keine Fehlerseite hinterlegt ist und der Browser keine anzeigt, bekommt man nur eine weiße Seite was aber den Nutzer nicht darüber aufklärt, dass er sich erst anmelden muss.

Auf der DS ist doch ne Fehlerseite hinterlegt:

PHP:
exit('403 Forbidden');

Statt der Fehlermeldung kannst du meines Wissens nach auch html einfügen und dir ne Fehlerseite erstellen oder die von der DS nutzen....
 
Ja. Aber so wie ich das sehe nur beim user-Apachen. Beim system-Apachen geht Synology wohl davon aus, dass solche Fehlerseiten nicht vorkommen...
 
Vielleicht reden wir auch grade aneinander vorbei,
schau doch mal in usr/syno/synoman/phpsrc/web
Das ist trotzdem Alles nur für den User Apachen, wenn im /var/services/web oder homes/<user>/www Verzeichnis eine Datei nicht gefunden wurde.
 
Danke das du das Thema wieder hervorgegraben hast.
Hier meine geänderte Version von Automate nach dem Vorschlag von QTip in Post #8.
Ich finde die Meldung dennoch etwas kurz.

MfG Matthieu
 

Anhänge

Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat