如何处理跨站点脚本ASP.NetCore MVC。在以前的框架中,我们有[AllowHTML]和[ValidateInput]等注释。但是.Net Core中似乎缺少这些属性。所以请分享.Net Core中可用选项的详细信息
首先,你应该读到:https://docs.microsoft.com/en-us/aspnet/core/security/cross-site-scripting?view=aspnetcore-2.2
如果你使用带有变量的Razor,你应该在大多数时候都是安全的,因为“MVC中使用的Razor引擎自动编码来自变量的所有输出”
如果你要绕过Razor变量,例如使用类似@Html.Raw(someData)
的东西,那么你需要确保你清理你输出的任何原始(未编码)的html。您可以使用像这样的清洁剂(我使用):https://github.com/mganss/HtmlSanitizer
这些是防止大多数XSS尝试的基本安全措施。
您可以使用antiforgerytoken属性
[ValidateAntiForgeryToken]
防止跨站点脚本攻击。