2010-12-09 12 views
3

Ich plane eine Webapp, die es Benutzern ermöglicht, Ressourcen zu erstellen, ohne sich anzumelden. Ich plane die Verwendung der Google Docs/Pastebin-Sicherheitsmethode durch Erstellen von schwer zu erratenden URLs. (z. B. example.com/ytasdfweoirue/)Richtlinien für "shareable" url security

Was sind einige Dinge zu beachten? Welche Richtlinien würden Sie beim Entwurf des Token-Generators verwenden? Was sind einige Dinge, die ich beachten sollte? Gibt es eine beste Auswahl an Charakteren?

Mein Backend wird wahrscheinlich CouchDB sein, aber ich interessiere mich für Plattform Agnostic, allgemeine Richtlinien und Probleme, die auf jeder Plattform auftreten könnten.

+0

Was erhoffen Sie sich mit dieser Aufgabe? Versuchen Sie, die Wahrscheinlichkeit zu verringern, dass jemand eine bestimmte URL erraten kann? – Mark

+0

Ja. Ich möchte ein ausgewogenes Verhältnis zwischen kurz und sicher haben und keine dummen Fehler vermeiden, die ich machen könnte. – justin

Antwort

0

Verwenden PRNG

Sie sollten eine zufällige URL mit einem PRNG erzeugen, nicht mit dem Rahmen der einfachste Random() Funktion. (FYI Theoretisch .NET GUID ist nicht für die Sicherheit entworfen, in der Praxis in einer Web-Anwendung, die Sie sollten in Ordnung sein, aber Sie haben gewarnt)

nicht 3rd-Party-Ressourcen in der „versteckten“ Seite schließen Sie

Stellen Sie sicher, dass die Besucher der Seite keine Drittanbieter-Ressourcen (Javascripts, Bilder, Flash-Animationen usw.) enthalten. Die meisten werden die aktuelle URL über REFERRER verlieren und Ihre versteckte URL wird allen zugänglich gemacht diese dritten Parteien. Dies gilt auch dann, wenn Sie HTTPS verwenden und enthaltene URLs HTTPs verwenden.

Fügen Sie keine Links zu 3rd-Party-Websites, wenn Sie dann kümmern Referrers

Wieder REFERRER undicht nehmen müssen kann ein Problem sein, wenn die Seite, die Sie dienen, enthält Links zu 3rd-Party-URLs. In diesem Fall können Sie sie entweder von einer gemeinsamen Seite umleiten (wenn Sie dies tun, seien Sie vorsichtig mit Open Redirect Sicherheitslücken) oder Sie können einen JavaScript-Trick verwenden, um REFERRER zu entfernen.

0

Sie erwähnen nicht Ihren Technologie-Stack, aber die beste Option klingt hier wie ein Guid. Haben Sie einfach Ihre URL:

http://whatever.com/resource/ {guid}

Guids lange genug hart/unmöglich zu erraten oder aufzählen und Sie eine ziemlich starke Garantie muss sein, dass Sie nicht zwei guids erzeugen, die gleich sind. Solange Sie nicht in Javascript sind, sollte Ihre Sprache einen Guid-Generator als eingebautes (.net) oder Bibliothek haben. Hier

ist die Wikipedia-Seite für weitere Diskussion: http://en.wikipedia.org/wiki/Globally_unique_identifier

Verwandte Themen