C# ASP.NET MVC能否防止打开重定向安全问题
我将asp.net mvc代码解读为:C# ASP.NET MVC能否防止打开重定向安全问题,c#,asp.net,asp.net-mvc,security,asp.net-mvc-4,C#,Asp.net,Asp.net Mvc,Security,Asp.net Mvc 4,我将asp.net mvc代码解读为: [HttpGet] public ActionResult Move(string url) { return Redirect(HttpUtility.UrlEnocode(url)); } 我担心上面的代码可能会导致开放重定向安全问题,因为“url”来自用户的输入,永远不会被过滤/保护 所以url可能是一些“www.hackersite.com”,这将是危险的 但是有人告诉我,asp.NETMVC框架可以通过asp.NETMVC框架防止这个问
[HttpGet]
public ActionResult Move(string url)
{
return Redirect(HttpUtility.UrlEnocode(url));
}
我担心上面的代码可能会导致开放重定向安全问题,因为“url”来自用户的输入,永远不会被过滤/保护
所以url可能是一些“www.hackersite.com”,这将是危险的
但是有人告诉我,asp.NETMVC框架可以通过asp.NETMVC框架防止这个问题。我不知道如何做到这一点……?你到底在使用哪种技术并不重要。为了防止打开重定向,您只需遵循OWASP指南即可。 站点重定向通常有两种不同的情况:
if (Url.IsLocalUrl(returnPath))
return Redirect(returnPath);
else
return RedirectToAction("Index", "Home");
对于案例2:
您可能需要首先检查URL是否为本地URL。如果不是,你必须将用户重定向到一个网页,并要求他确认他将被重定向到另一个域
您可以在此处找到更多信息:编码没有帮助。你想阻止用户重定向到其他站点吗?@StephenMuecke我想阻止用户重定向到外部站点MVC(版本3+)已经内置了此功能。您可以使用检查其是否为本地url