2012-09-16 100 views
-4

嘿,我想知道是否有一種方法來查看您的文件時使用ajax。例如 我有ajax設置等,我提出了一個請求,但任何人都可以找出我的文件夾結構,並去我的PHP文件,任何事情都可能發生,我想要扔他們404如果他們嘗試訪問該文件。我沒有嘗試過任何東西,因爲我沒有最小的線索。 你需要使用.htaccess嗎?只能通過ajax訪問文件

我試圖在互聯網上搜索這個我找不到任何東西,所以如果有另一個類似這樣的帖子讓我知道並給我一個鏈接謝謝你。

+1

我知道你說過你沒有嘗試過任何東西,但是這裏有個問題:[你有什麼嘗試?](http://www.whathaveyoutried.com)。 – rationalboss

+0

@ArtursLapins首先讓你自己瞭解AJAX這個主題,以及它究竟做了什麼,這將是非常明智的。主要觀點是,這是一般情況。如果您嘗試訪問的文件可以通過瀏覽器(或任何允許訪問的協議(本例中爲http/https))進行檢索,則可以使用名爲AJAX的方法來檢索該文件。 – dbf

+0

同意上面的dbf你需要先理解AJAX是什麼,也可以嘗試使用額外的頭文件或傳遞請求的信息。 – Gntem

回答

1

不是一件容易的事。

與任何其他HTTP訪問一樣,Ajax是通過請求創建的。正常請求通過GET方法完成,就像有一個GET Ajax請求方法一樣。

我面臨的情況和你不是太長,我的解決方案,儘管遠非完美,是這樣的:

  1. 讓所有的Ajax應用程序中調用使用POST方法;
  2. 一下添加到一個文件,你include在應該通過Ajax來獲取每個PHP的開始/ require

    if ($_SERVER['REQUEST_METHOD'] != 'POST') { 
        header('Location: /404page.php'); //The/represents the site root 
        exit; 
    } 
    

這樣一來,人們試圖打開頁面直接將被重定向到404頁面。

當然,人們可以很容易地僞造一個POST請求頭。您也可以爲每個Ajax調用添加一個POST參數,但是也可以僞造一個頭文件,也可以輕鬆地僞造POST數據。

只需進行強大的服務器端驗證以確保用戶有權查看該頁面,並且應該接收的所有數據都在那裏並且是有效的。如果有人用請求標頭四處亂竄,並在應用程序之外看到醜陋的頁面,那畢竟不是你的問題。