Verhindern Sie den Zugriff auf admin-Seiten in AngularJS
Frage ich mich, was der beste Ansatz in AngularJS ist die sichere admin-Seiten, d.h. Seiten, die normale Benutzer sollten nicht in der Lage, um zu sehen. Natürlich, es wird sein back-end-Authentifizierung, die aber seit der AngularJS-app ist der client-Seite könnte man noch theoretisch Blick auf die routing-und diese URLs zu gehen, direkt und Blick auf den admin-Seiten.
Ich bin mit Express, PassportJS & MongoDB (Mungo) wie mein backend. Natürlich, Sie wäre nicht in der Lage zu interagieren mit den admin-Seiten, da gibt es server-seitige Authentifizierung auf erstellen, löschen, ... aber ich würde viel lieber auch nicht dienen, die Seiten auf den Benutzer, wenn Sie nicht den richtigen Zugang. Da die app vollständig clientseitige JS-obwohl, ich denke, das ist irgendwie unmöglich, da die Menschen können einfach ändern Sie die routing-und so weiter. Was ist der beste Weg zu gehen über diese? Vielen Dank für jede Eingabe!
- beste Weg wäre, um diesem Ansatz Folgen stackoverflow.com/questions/16139660/...
- Sie dienen nicht der Nutzer, was der Benutzer nicht sehen soll: <?php if (!$_SESSION['user_id'] { forward(/user/access); }) ?>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde setzen Sie ein Häkchen im inneren routeProvider. Dies hat zu erfolgen für jede route, die eine Authentifizierung erfordert. Sie können sogar schreiben Sie eine eigene Methode und kleben Sie es auf jeder route, um Doppelarbeit zu vermeiden.
Diese Frage ist ein bisschen alt, aber wenn jemand auf der Suche für eine Lösung gibt , und ich war mit einer Ressource-Datei zu speichern, meine html-templates und dann rufen Sie es mit webapi beim überprüfen der Berechtigung und gibt die html -, nur wenn der Benutzer authentifiziert.
Warum würden Sie "viel lieber" nicht zu dienen, diese Seiten zu non-admin Benutzer? Haben Sie einen tatsächlichen Grund zur Sorge über diese, anders als irgendein Instinkt, dass Sie sollten aufhören, Menschen, die Dinge sehen, Sie sind nicht "angeblich" zu sehen?
Wenn Ihr die Sicherheit ordnungsgemäß konfiguriert ist, dann nicht-admin-Benutzer keinen Zugriff auf admin-Daten, oder führen Sie admin-Operationen. Das ist das, was Sie sollten sich darauf konzentrieren, nicht zu erfinden kunstvolle Art und Weise, Sie zu stoppen, zu sehen, admin-Bildschirme, die Sie nicht verwenden können, sowieso. Jede Zeit, die Sie auf das ist im Grunde Verschwendete Zeit, und Sie sollten sich auf wichtigere Dinge.
Den Weg, den ich tun ist, legen Sie die angularJS html in JSP-Seite und überprüfen Sie Sitzung. Falls die session überprüft, den Zugang bereitzustellen.
Ich bin nicht sicher, ob das ist der richtige Weg.
Ein anderer Weg ist, nicht JSP, sondern bei jedem API-Treffer, überprüfen Sie die Sitzung auf dem server, sonst false zurück.
Eine weitere Möglichkeit ist, auf der ersten Anmeldung erhalten Sie eine automatisch generierte key, Speicher am server und client beide, überprüfen Sie auf jedem API-Treffer.
Könnten Sie
params
imui-router
https://github.com/angular-ui/ui-router/tree/masterIch Stimme mit Chris Russo ' s betrifft. Das ist alles über Sicherheit in Frage. Wenn Sie mit Winkel für Ihren front-end -, dann müssen Sie einen Rahmen, der eine starke Fähigkeit, bei der Sicherung Ihrer Anwendung, wenn jemand versucht, einen Angriff auf Ihren web-Website/- Anwendung. Ich empfehle das spring-framework (spring_security) es hat sich bewährt, verfügen über die Sicherung Ihrer web-Anwendung. Sie müssen Rollen zuweisen, um jeden Benutzer wie ROLE_USER oder ROLE_ADMIN. Ich werde nicht Graben in die Details, wie es zu tun, aber dies wird helfen, um gelöst zu Ihrem Anliegen. 🙂