2

我正在使用 Response.Redirect 来提供媒体文件,但不希望人们看到文件的直接 url 或子域(主机)。是否可以伪造“get”并隐藏主机和引用者?

4

2 回答 2

3

使用Server.Transfer将请求处理转移到另一个页面。

当您使用 Transfer 方法时,所有内置对象的状态信息都包含在传输中。这意味着已在会话或应用程序范围内分配了值的任何变量或对象都将得到维护。此外,请求集合的所有当前内容都可用于接收传输的 .asp 文件。

Server.Transfer 作为 Response.Redirect 方法的有效替代品。Response.Redirect 指定浏览器请求不同的页面。因为重定向强制一个新的页面请求,浏览器向 Web 服务器发出两个请求,所以 Web 服务器处理一个额外的请求。IIS 5.0 引入了一个新函数 Server.Transfer,它将执行转移到服务器上的不同 ASP 页。这避免了额外的请求,从而获得更好的整体系统性能以及更好的用户体验。

由于浏览器不会发出另一个请求,因此该 url 对浏览器完全隐藏,但它仍会获取将由您的重定向 url 提供的文件。

于 2012-09-11T03:41:50.703 回答
1

你想要的是不可能的——原因很简单:要让客户端直接从另一个来源下载文件,你需要以某种方式将有关位置的信息传达给客户端:如果客户端不知道位置,它不能从那里下载。

无论您尝试以何种方式进行混淆,如果它对客户端浏览器来说是可解码的,那么它对于配备 firebug 的人来说也是可解码的。

于 2012-09-11T03:29:04.330 回答