Ich frage mich, ob es ein Sicherheitsproblem ist, wenn man dem Benutzer einer Site erlaubt, auf Cookies mit Javascript zuzugreifen und sie zu ändern? Welcher Schaden kann dadurch verursacht werden, dass Benutzer das zulassen? Wird es nur in einigen Situationen als Sicherheitsproblem angesehen, aber nicht in anderen? Verhindert die Verwendung von HttpOnly-Cookies die Änderung von Cookies durch den Benutzer?Erlaube den Benutzern den Zugriff auf Cookies über Javascript. Ein Sicherheitsproblem
Antwort
Sie sprechen über zwei verschiedene Szenarien:
- erlauben JavaScript Cookies zu lesen/ändern
- Kann ein Benutzer Cookies ändern, wenn sie als Httponly gekennzeichnet sind
1) erlauben JavaScript Lesen/ändern Sie Cookies.
Der Grund, warum JavaScript normalerweise nicht auf Cookies (Lesen oder Schreiben) zugreifen kann, ist, dass die meisten Websites Cookies verwenden, um die Website-Authentifizierung zu verarbeiten. Es ist üblich, dass Angreifer auf einer Website einen Exploit von Cross-Site Scripting (XSS) erstellen und diesen verwenden, um die Werte des Authentifizierungscookies zu lesen und sie an einen Server zu senden, den der Angreifer kontrolliert.
Wenn der Angreifer Sitzungscookies hat, besteht die Möglichkeit (abhängig von der Sicherheit der Site), dass der Angreifer die Werte des Authentifizierungscookies des Opfers in die Angreifer-Sitzung einfügt. Wenn sie dann zum Zielort gehen, werden sie als Opfer behandelt und können alles tun, was das Opfer tun kann.
Stehlen von Cookies ist nicht die einzige Sache, die durch XSS getan werden kann, um mehr zu lesen, schauen Sie auf OWASPS - A3 Cross-Site Scripting write-up.
2) Kann ein Benutzer Cookies ändern, wenn sie als Httponly gekennzeichnet sind
Ja. Der Benutzer kann die Cookies, html, css, JavaScript, alles, was auf seinem Rechner ist, ändern. Aus diesem Grund sollten niemals Geheimnisse auf dem Computer des Kunden gespeichert werden, und ALLE Werte, die vom Computer des Kunden/Benutzers kommen, müssen als nicht vertrauenswürdig betrachtet werden, bis sie sich als gültig erweisen.
- 1. Zugriff auf den WEB-API-Cookie über document.cookie in JavaScript
- 2. Anonymen Benutzern den Zugriff auf Sonar verweigern
- 3. Wie erlaube ich allen Benutzern den Zugriff auf eine Route innerhalb einer Website mit integrierter Authentifizierung?
- 4. Zugriff auf Cookies, hoffentlich in JavaScript
- 5. Zugriff auf die GPU über den Webbrowser
- 6. Javascript Sicherheitsproblem
- 7. Zugriff auf Cookies über eine Chrome-App
- 8. Zugriff auf den Andock-Container über den iOS-Simulator
- 9. Den Zugriff auf den Ordner verweigern, aber den Zugriff auf eine Datei in diesem Ordner zulassen
- 10. KDB +/Q Zugriff auf den Root-Namespace über den Namespace
- 11. Javascript Problem beim Zugriff auf den Formularnamen
- 12. SQL Server beschränkt den Zugriff nur auf den lokalen Server
- 13. Erlaube HTTP-Zugriff auf AWS-Instanzen nur über ELB
- 14. Erlaube Zugriff auf bestimmte Datei in PHP
- 15. Nested Ressource unter den Benutzern, mag ich nur die current_user der Lage sein, den Zugriff auf
- 16. Zugriff auf den Variablennamen
- 17. Zugriff auf den Ember Data Store über die Konsole?
- 18. Erlaube Benutzern Hintergrundmusik in Swift 2.0
- 19. Erlaube Benutzern, Expander in WPF zu ändern
- 20. SonataMediaBundle: Erlaube dem Benutzer den Link hochzuladen
- 21. Erlaube Google-Dienstkonto YouTube Upload-Zugriff über API v3
- 22. Zugriff auf die Variable VIEW_DATA über den Gmail-Quellcode über Javascript
- 23. Tracking-Cookies für den Verkauf
- 24. Erstellen Sie ein interaktives Dashboard über den Zugriff mit vba
- 25. Zugriff auf Browser-Cookies von Flex
- 26. Wie man den Zugriff auf SVGs über CORS auf mehrere Domains innerhalb von Nginx erlaubt
- 27. Zugriff auf den USB Stick (MP3 Player) Über FileInfo?
- 28. Zugriff über den Controller im Episererver CMS
- 29. Zugriff auf den Web-Server auf der VirtualBox/Vagrant-Maschine über den Host-Browser?
- 30. Senden Mobile Browser httpOnly Cookies über den HTML5 Audio-Tag?
Es ist kein Sicherheitsproblem. In der Tat ist es unmöglich, dies zu verhindern, da die Cookies vom Benutzer gespeichert werden. – afuous