我有两个名为List.aspx&的aspx页面。 View.aspx。
在view.apsx中使用Request.UrlReferrer属性(出于某些安全目的)
View.aspx
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Request.UrlReferrer Is Nothing Then
Response.Write("Invalid URL")
Else
// Some Code here
End
End Sub
在List.aspx页面中调用一个java脚本函数,例如:
List.aspx
function ViewDetail(HCode)
{
var url = "View.aspx?ActivePageName=V&HeaderCode=" + HCode;
var z = window.open(url, "Action", "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=0,border=thin,top=400,left=400,width=500,height=200");
}
在新打开的弹出窗口中,我收到了UrlReferrer错误。
答案 0 :(得分:2)
首先,我会尽力阻止您使用UrlReferrer进行安全保护。这背后的想法是,您只能从您域名的页面调用您的页面。通过cookie可以更好地实现这一点,因为UrlReferrer具有特定于浏览器的行为。 Chrome或Firefox的处理方式与Internet Explorer不同。
在SO上有一个类似的问题导致无处可寻: URL Referer not working on pop up windows
如果我是你,我会怎么做 - 作为
的一部分var url = "View.aspx?ActivePageName=V&HeaderCode=" + HCode + "&Token=<%= EncryptedToken %>";
我会传递一些安全令牌,它将包含页面名称,Like(C#):
string EncryptedToken { get {
return Encrypt(string.Format("/List.aspx,{0}", DateTime.Now.Ticks));
}}
在View.aspx上(除了UrlReferrer)检查查询字符串中是否有加密令牌,是否可以解密且不太旧。