2016-05-26 6 views
2

Innerhalb meiner ASP.Net MVC-Anwendung möchte ich einer bestimmten Benutzergruppe den Zugriff auf eine Seite erlauben, wo sie eine Datei herunterladen können. Normalerweise würde ich diese Benutzergruppe auffordern, auf die Seite mit dem Download über eine Anmeldung (Benutzername und Passwort) zuzugreifen und ihre Anmeldedaten zu authentifizieren. Diese Benutzergruppe beschweren sich jedoch über die Anzahl der Anmeldedaten, die sie für mehrere andere Web-Systeme haben, und möchten nicht wirklich einen anderen Satz von Anmeldedaten haben, an die sie sich erinnern können. Daher dachte ich daran, dem Benutzer eine URL zu geben, die eine GUID enthält, in der Hoffnung, dass dies für jemanden sehr unwahrscheinlich ist. Zum Beispiel:Verwenden von GUID in Querystring für die Sicherheit

http://www.example.com/admin/93017B0C-D548-40CA-A7B0-D4DA707ABE4C

würde schätzen ich wirklich, was die Leute dieses Ansatzes denken? Würde es immer noch als sicher angesehen werden? Oder sollte ich meinen normalen Ansatz verfolgen, Benutzeranmeldedaten zu authentifizieren und sie dann mit dem Download auf die sichere Seite umzuleiten.

Vielen Dank im Voraus.

Antwort

2

Informationen zur Sicherheit von GUIDs finden Sie unter this answer und GUID RFC.

Gehen Sie nicht davon aus, dass UUIDs schwer zu erraten sind. Sie sollten nicht
als Sicherheitsfunktionen verwendet werden (Kennungen, deren bloßer BesitzZugriff gewährt), zum Beispiel. Eine vorhersagbare Zufallszahlenquelle wird die Situation verschärfen.

Das heißt, GUIDs sind einzigartig, aber sie sind nicht unvorhersehbar, so dass sie für diese Verwendung ungeeignet sind. Verwenden Sie ein CSPRNG, um stattdessen ein zufälliges 128-Bit-Token zu generieren.

In Bezug auf die Sicherheit von URLs gilt, dass URLs nicht als sicher gelten. Der Grund dafür ist, dass sie standardmäßig von Proxies und Servern protokolliert werden, in Browserverlaufsprotokollen gespeichert sind und vom HTTP-Header des Referrers durchgesickert werden können.

Außerdem wird https empfohlen, um sicherzustellen, dass der Pfad während des Transports nicht abgefangen werden kann.

Stellen Sie sich vor, dass ein Benutzer aus der Gruppe entfernt wird, aber Sie verwenden dieses Schema anstelle der richtigen Authentifizierung. Die automatische Vervollständigung ihres Browsers erinnert sich an die GUID in der URL, was bedeutet, dass sie jederzeit auf die Seite zugreifen können (oder sie könnten sogar ein Lesezeichen setzen, um dies zu gewährleisten).

Ich empfehle eine echte Authentifizierung und ermutige Ihre Benutzer, einen Passwort-Manager zu verwenden.

Verwandte Themen