2012-09-28 25 views
1

我正在將我的站點從其本地主機位置遷移到服務器。在我的服務器根目錄中,我希望有一個映射到主域的public_html文件夾和一個包含我的資源(模型,庫,模板,php工具等)的私有文件夾。目前,雖然我有公用文件夾中的幾個JavaScript文件,使ajax調用PHP文件我想保留在私人目錄。我明白,因爲Ajax調用將從客戶端瀏覽器,我不能引用私人文件夾。來自主站點域(private_html)的私人文件夾/ p​​hp文件的Ajax調用

因此,這裏有兩個想法我有:

  1. 移動的PHP文件到公共目錄。 (並不完全確定安全風險,但他們所做的只是撥打我的數據庫來查看我所處理的數據)。

  2. 讓ajax在公用目錄中調用一個php文件,該服務器端包含我要調用的私人php文件。

選項2真的是一種解決方案來阻止訪問公共目錄之外的私人文件嗎?如果不是,如果我需要將稱爲php文件的ajax移動到公共目錄,我應該記住哪些安全問題?

回答

2

您所描述的選項2通常稱爲「網關」,它用於在客戶端和安全服務器文件之間提供受控的數據流。選項2是一個有效的解決方案。

編輯:

雖然這種方法將防止直接被訪問的其他文件,公共文件或它包括靜態文件的功能需要驗證數據發送給它以防止操縱數據利用您系統中的漏洞。

+0

酷!它確實在我的工作上有用,但我只是想仔細檢查一下這樣一個簡單的解決方案是否會將私有文件與客戶端隔離。 – Rafie

+0

許多複雜的系統都使用這種方法,即使index.php文件通常只用於在幕後調用其他文件。通常網關文件有一種路由系統,用來收集正確的數據,但如果你只是想讓它隱藏真實的源文件,並且只包含另一個文件,那很好。 – Flosculus