有没有办法隐藏参数并传递
window.location.href = '@Url.Action("index", "mycntroller")?at='+119nuju
答案 0 :(得分:3)
虽然您可以使用POST
请求或使用coockies
或请求标题或... 以防止参数乍一看,但您应该知道隐藏参数将永远不会帮助提高您网站的安全性。
因为所有参数都可以在Developer Tools
,FireBug
等工具中进行监控,而则完全可见。
隐藏参数通常是为了获得更好的用户体验,用户无法看到对他毫无意义的参数。
因此,最好不要在不需要时尝试隐藏参数。
如果值119nuju
对您非常重要,请不要以这种方式传递,而是考虑加密或在TempData / Session中使用密钥并传递该密钥而不是该值。然后,当请求返回到服务器时,通过密钥检索值。
重要强>
如果您使用此类方式(加密,密钥,...),则检查用户的权限以查看此用户是否可以访问119nuju
或任何相关资源仍然非常重要,以防止{{3 }}
答案 1 :(得分:0)
一种方法是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);
HttpContext.Request.Cookies["at"] != null // Check is exist
HttpCookie cookie = HttpContext.Request.Cookies.Get("at"); //Get cookie
答案 2 :(得分:0)
您可以隐藏标题中的值。但是需要更多的编码。这是一个很好的方法。搜索更多关于在header中传递值的信息。它更加安全,因为值在请求头中而不是在请求体中传递。它比加密好得多,因为即使该方法也会在你的url中显示一些随机文本。干净,你可以使用它。