2009-07-22 191 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,因爲如果不是其他服務器將發送它已經執行。這似乎很清楚,但我第一次忘了它!