2011-11-07 530 views
1

如果我有像這樣Javascript <script src = ...>接受完整路徑嗎?

/ 
├── home 
│   └── user 
│    └── test.js 
├── usr 
│   └── bin 
└── var 
    └── www 
     └── index.html 

暫且不論文件夾權限的那一刻,如果有index.html的下面一行

<script src="../../../home/user/test.js"> 

<script src="/home/user/test.js"> 

會變成這樣的目錄結構有效嗎?如果是這樣,是否有任何方法來防止這種情況,所以只能嵌套文件夾(編輯符號鏈接也必須忽略)?

回答

2
<script src="/home/user/test.js"> 

將是有效的。它只會使用主機網頁上的任何域,並從那裏的頂級目錄開始。例如,如果主機網頁是:

http://www.example.com/projectA/test.html

然後<script src="/home/user/test.js">會產生在此位置的文件的請求:

http://www.example.com/home/user/test.js

+0

有什麼辦法可以限制這個,無論是服務器端還是客戶端? – puk

+0

限制它如何?你真的想保護什麼?如果您不想在服務器上的指定目錄之上訪問Web,那麼您必須以這種方式配置Web服務器。我不是一個可以幫助你解決這類問題的人。您可能需要啓動一個新問題,詢問如何在特定類型的Web服務器環境中設置目錄訪問權限。 – jfriend00

3

瀏覽器將嘗試訪問src屬性中的任何路徑。您可以通過您的Web服務器(例如Apache)設置文件權限來限制某些路徑。

+0

雖然我沒有提到它,我使用suPHP,所以只需將所有可訪問的站點設置爲'0777'即可。 – puk

+0

我將如何通過Apache2.0設置文件權限(請注意,如果這與httpdconf相關,則在使用suPHP時不會被接受)。 – puk

3

它是有效的。 Web服務器的工作是服務或不服務文件。

但是,如果您使用/home/user/test.js,通常相對於文檔根目錄,因此它相當於http://<host>/home/user/test.js

相關問題