2009-07-22 190 views
2

是否有无论如何做一个#包含一个文件列为绝对路径?asp包含绝对路径

我试图包括文件从其他网站(outsite想要将其纳入视线的根)

任何其他建议?

+0

@me:由于您使用的是托管服务,所以直接答案是否定的。是什么让你认为主机允许你访问指定应用程序文件夹以外的文件? – AnthonyWJones 2009-07-22 13:09:30

回答

1

如果启用了“允许父路径”选项,或者您可以使用虚拟包含指向服务器上的其他虚拟目录,则只能包含服务器中的文件,这些文件可能在技术上位于网站外部。

没有办法将服务器外的网站或服务器上的网站中的文件包含在您的应用程序无权访问的位置。

0

<!--#include file="c:\boot.ini"-->

有在IIS用于允许设置包括到父路径,检查如果上述不工作。

+0

IIRC取消选中该设置有潜在危险,因为它会让攻击者http://yoursite.com/../../windows/system32 – Benjol 2009-07-22 08:16:14

+0

@Benjol:是的,但攻击者必须更改服务器上的文件要做到这一点,如果他们能做到这一点,他们也可以在代码中读取文件,而不是将其包含在内。 – svinto 2009-07-22 10:33:24

0

另一种方法是在网站的根文件夹下创建一个目录,然后将该文件夹作为要包含的文件所在的文件夹的符号链接。现在无法在开箱即用的Windows中创建符号链接,因此您需要Microsoft Sysinternals Junction

0

你可以使用XMLHTTP和VBscript Execute语句。 我不会推荐它,因为它会产生很大的安全风险。

几个环节,让你开始:

http://www.4guysfromrolla.com/webtech/042602-1.shtml

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/vsstmexecute.asp

http://www.4guysfromrolla.com/webtech/110100-1.shtml

这是一个非常高的安全风险,因为有人可以将代码插入到你的应用程序。采取预防措施。

一个提示:您需要从另一台服务器加载的页面需要扩展名不同于.asp,因为如果不是其他服务器将发送它已经执行。这似乎很清楚,但我第一次忘了它!