要防止在ASP.Net Core中使用iframe提交表单,可以使用以下解决方法:
@using Microsoft.AspNetCore.Antiforgery
@inject IAntiforgery Antiforgery
这样会在表单中生成一个隐藏的input元素,其中包含了防伪造令牌。
[HttpPost]
public IActionResult YourAction()
{
// 验证防伪造令牌
if (!Antiforgery.ValidateRequest(HttpContext))
{
// 验证失败,可以进行相应的处理,如返回错误页面或重定向到其他页面
return RedirectToAction("Error");
}
// 继续处理表单提交逻辑
// ...
}
Antiforgery.ValidateRequest(HttpContext)
方法用于验证请求中的防伪造令牌,如果验证失败,则可以根据需要进行相应的处理。
通过以上方法,可以防止恶意的iframe通过提交表单来进行CSRF(跨站请求伪造)攻击。