2016-05-07 5 views
0

Ich habe einen Standard-App MVC und ich Protokollierung nur getestet mit:Ich kann FormsAuthentication.SetAuthCookie verwenden, um sich als meine Benutzer bei meiner App anzumelden. Ist das ein Sicherheitsrisiko?

FormsAuthentication.SetAuthCookie("userToImpersonate", false); 

Und das funktioniert - ich anmelden können, ohne ihr Passwort. Sollte das möglich sein? Ich habe Angst zu denken, dass meine Entwickler einen anderen Benutzer mit einer einzigen Codezeile imitieren können, und ich habe mehr Angst zu denken, dass unsere Implementierung von Forms Auth falsch ist. FWIW, hier ist, wie wir normalerweise Auth Benutzer:

WebSecurity.Login(model.Username, model.Password) 

Antwort

1

Die Methode FormsAuthentication.SetAuthCookie verschlüsselt den Cookie mit der machine key, die gerade konfiguriert wird. Der richtige und sichere Weg, dies zu handhaben, ist die richtige Automatisierung (Ansible, Puppet, ...), die Ihre Produktionsmaschinen dreht und die Produktionsschlüssel auf einige geheime Werte setzt, auf die Ihre Entwickler niemals Zugriff haben. Wenn Sie zum Beispiel Ansible verwenden, ist Ansible Vault der richtige Ort, um Ihre Produktionsschlüssel zu behalten, und nur Ihre Devops haben Zugriff darauf.

Auf diese Weise können Ihre Entwickler die FormsAuthentication.SetAuthCookie-Methode auf ihren lokalen Maschinen perfekt nutzen, aber das erzeugte Cookie wird mit ihren Maschinenschlüsseln verschlüsselt, was es in der Produktion nutzlos macht. Wenn ein Angreifer Zugriff auf Ihre Produktionsmaschinen erhält, können Sie natürlich nicht viel tun.

0

Wenn ein Benutzer vollen Zugriff auf den Code hat, dann, ja, können sie tun, was sie gerne mit „Backdoor“ Seiten erstellen, die sie in anderen Benutzer anmelden würde .

Es könnte sich lohnen, einen Peer-Review-Prozess zu implementieren, bei dem alle Änderungen von anderen Entwicklern überprüft und genehmigt werden, bevor sie in die Produktion implementiert werden. Diese Überprüfungen können vom Management genehmigt werden, bevor sie in den Änderungsverwaltungsprozess einbezogen werden.

Verwandte Themen