我需要能够在我的网站中打开一个外部 URL,而不向我的用户(在浏览器和源中)显示它。我不希望他们能够复制 URL 并根据自己的喜好编辑查询字符串。有没有办法在 iframe 或类似的东西中打开 URL,并隐藏/屏蔽其来源?
这是一个asp.net 2.0 网站。
我需要能够在我的网站中打开一个外部 URL,而不向我的用户(在浏览器和源中)显示它。我不希望他们能够复制 URL 并根据自己的喜好编辑查询字符串。有没有办法在 iframe 或类似的东西中打开 URL,并隐藏/屏蔽其来源?
这是一个asp.net 2.0 网站。
不可以。如果您让客户端机器做某事(即,将他们的浏览器指向一个网页),您不能向他们隐瞒这些信息。
您可以在 Flash 小部件或其他容器中呈现该页面服务器端,但您不能在客户端计算机上执行此操作。
你能做到以下几点:
这样用户就永远不会知道其他站点,并且它应该更加安全。
这也可以使用一些验证/身份验证,因此用户无法更改传递的参数以检索其他用户的 PDF。
最佳选择:您可以发出服务器端 XMLHTTP 请求,获取响应并使用 AJAX 反馈回您的页面。
您可以通过以下方式在服务器端进行:
不过,这可能会大大减慢您的页面加载速度,并且可能会伴随法律问题。
不久前我自己也遇到了类似的问题,并按照这些思路做了一些事情(C# .NET 2.0);
public void StreamURLContents(string URL)
{
WebRequest req = WebRequest.Create(URL);
using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse())
using (Stream dataStream = resp.GetResponseStream())
using (StreamReader reader = new StreamReader(dataStream))
{
string currentLine = reader.ReadLine();
while (currentLine != null)
{
Response.Write(currentLine);
currentLine = reader.ReadLine();
}
}
}
显然,您必须调整 HTML 的编写以适合您的特定应用程序,并且您会破坏目标站点中的所有相关链接(图像 URL、CSS 链接等),但如果您只追求简单的文本HTML 并希望您的 Web 应用程序在服务器端获取它,那么这是一个不错的方法。
您可以通过执行以下操作创建一次性 URL: