2013-06-25 209 views
4

這是我的網站地圖是什麼樣子:保護PHP文件

root: 
    -index.php 
    -\actions\ (various php files inside and a .htaccess) 
    - \includes\ (various php files inside and a .htaccess) 
    - .htaccess 

我知道,如果我用行動「從所有拒絕」,包括目錄中的文件,他們將無法直接進入。

現在,我的動作文件夾中有很多被index.php(表單)調用的php文件。 我在.htaccess裏面有\actions的「全部否認」,但後來我有禁止訪問這些文件。

那麼,如何保護文件免受直接url訪問,但有可以從index.php調用的例外?

+0

我已經對這個問題做了一些編輯,但是我沒有完整地保留這個結尾,因爲我沒有知道您是否獲得了「禁止訪問」的例外情況並希望擺脫它,或者如果您想強制在發生直接url訪問的情況下拋出異常。究竟是什麼問題? – Renan

回答

6

最簡單的方法是在index.php中放置一個常量,並檢查其他php文件是否存在此常量。如果沒有,讓腳本死掉。

的index.php

define('APP', true); 

various.php

if(!defined('APP')) die(); 
+2

'die()':'header('Location:/index.php')' –

+0

謝謝。將使用你的方式:) – lmarcelocc

+0

不錯,請標記爲其他人搜索此答案的答案;-) –

1

如果你想使用.htaccess阻止那麼很有可能將異常的最好辦法是將其添加到同一個文件.htaccess 。如果你想阻止PHP腳本工作(但不是「可見」),那麼只需在腳本開始時查找某個條件(如會話變量,常量)即可。除非這些腳本以「正確的方式」被調用,否則這些要求不會被更新,所以只需要die()然後

+0

感謝您的信息:) – lmarcelocc

+0

如果您執行'.htaccess'技巧,建議您使用'httpd.conf'代替,如果您有權訪問它。 –