繁体   English   中英

在url.action中传递带隐藏参数的url

[英]Pass url with hidden parameter in url.action

有没有办法隐藏参数和传递

window.location.href = '@Url.Action("index", "mycntroller")?at='+119nuju

虽然您可以使用POST请求或使用coockies或请求标题或... 以防止参数乍一看 ,但您应该知道隐藏参数永远不会有助于提高您网站的安全性。 因为可以在诸如Developer ToolsFireBugDeveloper Tools监视所有参数,所以它们完全可见

隐藏参数通常是为了获得更好的用户体验,用户无法看到对他来说毫无意义的参数。

因此,最好不要在不需要时尝试隐藏参数。


如果值119nuju对您来说非常重要,请不要以这种方式传递,而是考虑加密或在TempData / Session中使用密钥并传递该密钥而不是该值。 然后,当请求返回到服务器时,通过密钥检索值。

重要
如果你使用这种方式(加密,密钥......),检查用户的权限是否仍然非常重要,以查看此用户是否可以访问119nuju或任何相关资源,以防止不安全的直接对象引用

一种方法是cookie。 您可以通过使用cookie传递参数值来隐藏。

在客户端设置cookie。

function SetCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}
SetCookie('at','+119nuju',1);

在服务器端获取cookie值。

HttpContext.Request.Cookies["at"] != null // Check is exist
HttpCookie cookie = HttpContext.Request.Cookies.Get("at"); //Get cookie

您可以隐藏标题中的值。 但需要更多的编码。这是一个很好的方法。 搜索更多关于在header中传递值的信息。它更加安全,因为值在请求头中而不是在请求体中传递。它比加密好得多,因为即使该方法也会在你的url中显示一些随机文本。干净你可以使用这个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM