Frage

Ich habe also ein interessantes Problem ... Ich muss meinen WebApp dazu bringen, ein IBM App -Scan -Appliance zu durchlaufen, bevor ich meine Änderungen in die Produktion drücken kann. Meine neuesten Änderungen umfassen die AntiForgeryToken in ASP.NET MVC. Jeder Browser, den ich getestet habe, funktioniert gut, keine Probleme. Wenn das Gerät jedoch versucht, das Formular einzureichen, wird ein Validierungsfehler angezeigt. Wenn man sich den Verifizierungs -Token ansieht, führt das Gerät eine HTML -Encode für den Formwert auf dem Beitrag durch, sodass die Saiten nicht übereinstimmen ... so sehen sie aus:

cmiujrhizxlpvlu9zhkmtwdjihvq+n87csjzkixkf/Blhaycpvitjhrcswwirpwg - Aus dem Cookie CMIUJrhizxlpvlu9ZHKMtwdjihvq%2bn87csjzkf%2BwiTJiHhvq%2bn87csjzkfBlhiHhvq%2Bn87csjzkkf.

Also übersetzt es + bis %2b und / bis %2f ... hat jemand das schon einmal gesehen? Ist dies ein Problem für Kundenbrowser? Und gibt es AntiforgeryToken generiert eine Zeichenfolge, die keine Sonderzeichen hat, sodass ich meine App über diesen Scan erhalten kann? Vielen Dank!

War es hilfreich?

Lösung

Wenn Sie sich den MVC -Code ansehen, scheint es, dass er den RNGcryptoServiceProvider verwendet, um das Token zu erstellen. Interessanterweise haben sie eine Methode, die Zeichen ersetzt, die für Cookie -Namen unsicher sind (im Grunde genommen die "+" und "/", wie Sie in Ihrer Frage angegeben haben), aber sie ist als privat markiert und ich sehe nicht, wo es verwendet wird.

Leider können Sie Ihre eigene Klasse nicht aus der Antiforgerydata -Klasse ableiten, da sie versiegelt ist. Dies ist sehr traurig, weil es die offensichtliche Lösung für Ihre Frage war.

Sie können möglicherweise ein neues Attribut basierend auf dem MVC -Code erstellen und die Sicherheitsmethode selbst verwenden. Es wird trocken verletzen, aber ich sehe keinen Weg, da Microsoft die Klasse versiegelt hat.

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