Kann mir jemand sagen, woher die folgende HTTP-Fehlermeldung kommt:
Aufgrund der Anwesenheit von Zeichen, die bekanntermaßen in Cross Site Scripting-Angriffen verwendet werden, ist der Zugriff verboten. Diese Website erlaubt keine URLs, die eingebettete HTML-Tags enthalten könnten.
Wir verwenden dynamisch generierte URLs und in diesem speziellen Fall enthält die URL die Zeichen & lt; ' oder '& gt;' Wir verschlüsseln die generierte URL URL (also '% 3C' statt '& lt;'), aber es hilft nicht.
Unser Setup ist ASP.NET MVC / IIS 7.5 / IE8.
Es ist seltsam, aber es sieht so aus, als ob der Fehler nur auf einigen Rechnern auftritt. Es könnte also sein, dass die IE-Internetzoneneinstellungen eine Rolle spielen.
Sie verwenden wahrscheinlich ein Drittanbieter-Plugin wie SiteMinder, das versucht, Ihre Website vor XSS-Angriffen zu schützen, indem URLs mit HTML-Code abgelehnt werden.
Wenn der Fehler nur auf einigen Computern und nicht auf anderen auftritt, prüfen Sie, welche Plugins auf diesen Computern installiert sind. Entferne sie, bis du den Täter gefunden hast (dann installiere die anderen neu). Versuchen Sie, das Plugin so zu konfigurieren, dass die URLs zugelassen werden.
Überlege, ob du die Plugins wirklich brauchst oder nicht. Wenn einige Server sie haben und andere nicht, sind Sie vielleicht ohne sie besser dran.
Wie Konerak sagt, wenn Sie SiteMinder verwenden, gibt es 403 zurück und gibt Ihnen diese Nachricht, um Cross-Site-Scripting-Angriffe zu verhindern.
Diese Lösung ist möglicherweise nicht geeignet, wenn Sie eine nach außen gerichtete Website betreiben. Die einfachste Möglichkeit, das Problem zu vermeiden, bestand jedoch darin, die Datei LocalConfig.conf
zu bearbeiten, um die XSS-Überprüfung auszuschalten.
Dies ist die Einstellung:
CSSChecking="NO"
Und die Datei lebt hier:
Program Files\netegrity\webagent\bin\IIS\LocalConfig.conf
Tags und Links asp.net-mvc iis-7.5 internet-explorer-8