2012-01-25 49 views
0

我不路徑知道這可能隱藏在Ajax請求php文件

但我有我的JavaScript和所有的ajax功能,我們知道我們需要在Ajax請求,這將提供php file path對所有用戶都可見,不幸的是他們可以看到ajax文件的路徑以及它們的存儲位置。但是我不希望發生這種情況,我不希望用戶或客戶端看到我的ajax文件有沒有辦法隱藏這條路徑客戶端,看到ajax文件的路徑?我知道它的東西混淆,但我只想要完成的道路是可能的?

更新

那麼有沒有什麼辦法來從URL查看或打開PHP文件停止用戶,我的意思是如果用戶輸入的AJAX文件的路徑和點擊輸入他可以看到我的所有文件在那裏他可以很容易地破解我的數據,所以有沒有辦法阻止用戶輸入他們,我想只有我的網頁訪問php文件不是從用戶url,謝謝

+1

我可能會後悔,但是,爲什麼? – Andrew

+0

用戶可以查看HTTP請求(例如,使用Chrome控制檯,IE Web Developer whatsit或Firebug),所以這完全沒有意義。如果您希望瀏覽器能夠發出HTTP請求,您必須允許用戶知道其位置。 – lonesomeday

回答

6

這是不可能的。瀏覽器必須請求URI。用戶可以看到他們的瀏覽器正在請求什麼資源。

「Ajax文件」不是特例。您需要以與通過HTTP提供的任何其他資源完全相同的方式來保護它們。即使用身份驗證和授權來確保只有被允許訪問的用戶才能執行此操作,輸入驗證以確保發送給他們的任何數據都可以接受,並且轉義以確保數據在您嘗試時不會造成問題將其插入到SQL/HTML/JS /任何其他數據格式。

響應更新:

那麼,有沒有辦法從URL

仍然沒有查看或打開PHP文件停止用戶!

我的意思是如果用戶輸入的AJAX文件的路徑和點擊輸入他可以看到我的所有文件那邊

你可以配置你的服務器無法送達的DirectoryIndex。具體取決於服務器。或者,你可以在那裏放置一個空白的index.html文件。

,他可以很容易地破解我的數據

如何?

那麼有沒有辦法進入他們停止用戶

我只希望我的網頁從用戶

不能訪問僅PHP文件一個HTTP客戶端可以請求一個URI。無法區分HTTP客戶端響應來自您寫入的JavaScript指令和響應用戶輸入的JavaScript指令。

+0

那麼他可以在服務器端使用url重寫,就像在stackoverflow中'/ questions'不是服務器中的真實文件夾。我認爲這就是他的意思? – Esailija

+1

會有什麼意義?更改URI不會使它們看起來不那麼明顯。 – Quentin

+0

關鍵是它隱藏了php文件路徑 – Esailija

1

一種可能的方式是將其混淆以使其不可用用戶可讀。 EXPL;通過使用主腳本並通過切換一些POST/GET參數來發送文件(可以是隨機字符串,散列,數字)來包含文件。 當您通過mod_rewrite將所有流量重定向到一個腳本時,可以實現更高效的混淆處理。在URL的某個地方,你隱藏一個數字,告訴你要使用哪個文件。然後在它前後添加隨機字符串(具有特定長度)並從主腳本中讀取它。但是,然後用戶將通過查看JavaScript找到。

但很s。。你爲什麼在乎?沒有安全隱瞞!

/更新到您更新的問題; 我想你想看看你的apache配置;一起使用.htaccess files或更好,disable indexing of a directory。用戶無法知道你的所有php文件。只有那些,你通過應用程序中的鏈接公開。沒有「只允許ajax訪問文件而不是用戶」這樣的事情。因爲ajax是用戶而且是副verca!你代表用戶發送一個Ajax請求!如果用戶在瀏覽器欄中輸入url,則與發送ajax請求相同。 You could add a special header with your ajax call(或者使用已經提供的那個),但是隻要用戶看到交通足夠近,就不會改變任何事情。 我想你想要的是User Session只允許特權用戶完全執行腳本。

+0

看到我更新的問題請 – niko

+0

看我更新的答案:) – japrescott

0

這是不可能的。客戶端執行請求,客戶端處於用戶控制之下。

1

除非您在Apache Tomcat中使用jsp技術,否則您可以將文件夾放在WEB-INF中。