Frage

Hier sind einige der allgemein bekannten Praktiken für eine MVC-Anwendung zu sichern:

  • Encode die Ausgabe
  • parametrieren Ihre SQL
  • Testen Sie Ihre Suche rückwärts und vorwärts
  • 1-Weg-Hash-Passwörter
  • Sperren aus Konten oder Limit Anmeldeversuche
  • Benutzen Sie den Code basiert Identitätswechsel, wenn das Dateisystem zuzugreifen
  • Access SQL mit einem gesperrten Benutzernamen
  • Verwenden Sie Honig-Töpfe oder Captchas für das Ausfüllen von Formularen zu Gegen Bots

Wenn es alles, was ich verpasst oder falsche Angaben wenden Sie sich bitte beitragen.

Was andere Techniken / Best Practices verwenden Sie, oder denken, wenn Stift Ihre eigene Software zu testen. Was tun Sie, um „kick die Reifen“ vor einer Live-Anwendungen nehmen.

Was Stift Prüfdienste oder Software verwenden Sie wenn überhaupt?

War es hilfreich?

Lösung

Alle Methoden, die Verwendung modelbinding sollte mit weißen Listen oder schwarzen Listen an bindungsfähigen Eigenschaften sichergestellt werden.

string[] allowedProperties = new[]{ "Title", "Description"};
UpdateModel(myObject, allowedProperties);

oder

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create([Bind(Include="Title,Description")] MyObject object )
{

}

Das ist natürlich gestaltete Anfragen zu verhindern, dass zu aktualisieren versuchen / manipuliert Ihre Objekte in einer Weise, die nicht vorgesehen war.

Andere Tipps

Ihre Liste ist gut, obwohl es ein bisschen vage. Zum Beispiel md4 ist eine Einbahn Hash, aber seine extrem unsicher, wie ich eine Kollision auf meinem Desktop in weniger als einem Tag erzeugen kann. sha256 mit einem großen Salz-Wert ist ein sicherer Ansatz. (Ich weiß, dass auch diese Beschreibung unvollständig ist, nicht Flamme)

Es gibt nie einen Haken alle Sicherheits-Check-Liste, die auf der ganzen Linie arbeiten. Spezielle Anwendungen können bestimmte Schwachstellen aufweisen. Manchmal können diese Mängel logische Fehler sein, die nicht wirklich eine Klassifizierung haben.

Die OWASP Top 10 Schwachstellen in Webanwendungen ist eine hervorragende Ressource, dass Sie sollte studieren. Am bemerkenswertesten Sie vermissen XSRF auf Ihrer Liste, die einen verheerenden Angriff sein kann. Es gibt eine große Anzahl von „sink“ Angriffe, die Sie nicht aufgeführt. So was passiert, wenn ein Angreifer in einem Pfad seiner Wahl zu fopen passieren könnte? Eine Studie in Scharlachrot über viele dieser Angriffe auf PHP geht.

Alle Ihre Vorschläge gelten für jede Web-Anwendung, nicht nur MVC-Anwendungen.

Ein MVC-spezifische Vorschläge so etwas wie "skinny-Controller, Fett Modelle" sein würden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top