【发布时间】:2011-05-29 14:09:41
【问题描述】:
我有一个任务,只有当用户输入有效代码时,我才会在页面 iframe 上插入。用户输入一个代码,我检查它是否有效,如果是,我在我的网站上插入 iframe 元素。它工作得很好,但我想知道是否有可能隐藏 iframe 的 src,因为当一个人知道 iframe 的来源时,可以在没有有效代码的情况下随时访问该站点。
这是常见问题吗?我该怎么办?
【问题讨论】:
我有一个任务,只有当用户输入有效代码时,我才会在页面 iframe 上插入。用户输入一个代码,我检查它是否有效,如果是,我在我的网站上插入 iframe 元素。它工作得很好,但我想知道是否有可能隐藏 iframe 的 src,因为当一个人知道 iframe 的来源时,可以在没有有效代码的情况下随时访问该站点。
这是常见问题吗?我该怎么办?
【问题讨论】:
您无法隐藏来源。找到另一种方法。
【讨论】:
您不能隐藏 iframe 的 src。即使您可以对用户隐藏它,也很容易找到,毕竟您的浏览器必须发出 HTTP 请求。似乎最简单的解决您的问题的方法就是:
if (code == whateverTheCodeIsSupposedToBe){
Session["CorrectCode"] = true;
}
然后在您的 iframe 页面中执行以下操作:
if (Session["CorrectCode"] != true){
Response.Redirect("SorryYouDontHaveTheRightCode.aspx");
}
【讨论】:
正如其他人所说,浏览器需要 iframe 源来绘制它,所以真的没有办法告诉浏览器 src 同时又不告诉它。
我将尝试在此处针对您的潜在问题添加一些价值。为什么不将用户输入的验证码传递到框架内的页面并让该页面验证它是否正确?
那么用户是否知道框架的 src 并不重要,没有验证码对他们没有任何好处。
【讨论】: