2008-08-18 60 views
9

確保只有經過認證的用戶才能接受某些頁面的某些ajax調用的最佳做法是什麼?只接受來自已認證用戶的某些ajax請求

例如:

比方說,我有一個名爲blog.php的主網頁(我知道,創造力豐富)。我們還要說,有一個頁面叫做delete.php它尋找參數post_id,然後從數據庫中刪除一些條目。

在這個非常人爲的例子中,blog.php上有一些機制通過ajax發送一個請求到delete.php來刪除一個條目。

現在這個機制只會在blog.php上被認證用戶使用。但是,如果阻止某人只是用一堆隨機數調用delete.php並刪除站點中的所有內容,又該如何呢?

我做了一個簡單的測試,我設置blog.php的會話變量,然後做一個AJAX調用delete.php如果會話變量被設置或不回(這不是)

什麼是接受的方式來處理這種事情?


好的。我第一次嘗試這個時肯定是瘋了。

我只是做了另一個測試,就像我上面描述的那樣,它完美地工作。

回答

8

你試圖使用會話變量是正確的。一旦您的用戶進行身份驗證,您應該將這些信息存儲在他們的會話中,以便每個後續頁面視圖都能看到。在訪問$ _SESSION之前,確保你在兩個頁面(blog.php和delete.php)上都調用了session_start()。還要確保你啓用了cookies,如果沒有,你應該在查詢字符串中傳遞一個附加參數,通常是PHPSESSID = < session_id()>。

3

不建議您依賴會話進行身份驗證而不採取其他操作。 Read more on

相關問題