Ist die Verwendung von Get mit einem Tokenid für Sicherheit eine gute Idee?
Frage
ich war Denken Sie darüber nach Und es scheint, dass nur etwas weniger verletzlich und etwas schwieriger ist (um den Benutzer zu verpflichten, auf etwas zu klicken).
Ich habe über Token -IDs und doppelt eingereichte Cookies gelesen und bin mir nicht sicher, was der Unterschied ist
http://www.owasp.org/index.php/cross-ite_request_forgery_%28csrf%29_preventention_cheat_sheet#disclosure_of_token_in_url http://www.owasp.org/index.php/cross-ite_request_pangery_%28csrf%29_preventention_cheat_sheet#double_submit_cookies
Im Moment habe ich die Benutzer -ID (PK in meiner Tabelle) und eine Sitzungs -ID, sodass Sie Ihre Cookie -ID nicht einfach ändern und wie jemand anderes handeln können. Jetzt scheint es, als würde ich die Sitzungs -ID als Token in jeder meiner Formulare einsetzen und sie überprüfe. BC -Angreifer können diese Token nicht erraten. Ich mag jedoch die Idee, die Sitzungs -ID in die Seite zu setzen, damit PPL sehen kann. Aber wirklich, gibt es ein Problem damit? Wenn der Benutzer die HTML kopiert/einfügt. Gibt es Angriffe, die aufgrund der Sitzungs -ID in der HTML -Ansicht auftreten können?
Lösung
Wenn der Benutzer einen Link mit einem Token darin kopieren kann, ist dies sehr unsicher. Ebenso für die aktuelle Adresse: Wenn Sie eine statische Sitzungs -ID verwenden, wird eine Überweisung an eine externe Site oder ein Screenshot die Sitzung beeinträchtigen. Selbst wenn Sie keine statische Sitzungs -ID haben, kann der Benutzer seine Maus über einen Link legen und sie wird in der Unterseite seines Browsers angezeigt und dann einen Screenshot aufnehmen, wodurch seine Sitzung erneut kompromittiert wird.
Andere Tipps
Die Sitzungs-ID ist ohnehin auf der Client-Seite bekannt. Wie würden sie es sonst mit den Anfragen senden?