我對使用$ .Post $ .Ajax的XMLHttpRequest有一些疑問:XMLHttpRequest安全性?
1-服務器端如何驗證請求是否來自同一瀏覽器?
2-服務器端如何驗證發送請求的會話用戶是否已在同一瀏覽器上更改? (例如:用戶註銷和另一個用戶在同一瀏覽器上登錄)
3-我是否需要服務器端的#1和#2的任何特殊設置或PHP代碼?
也請給我一個關於任何有關XMLHttpRequest的安全問題的良好文檔的鏈接。
感謝
我對使用$ .Post $ .Ajax的XMLHttpRequest有一些疑問:XMLHttpRequest安全性?
1-服務器端如何驗證請求是否來自同一瀏覽器?
2-服務器端如何驗證發送請求的會話用戶是否已在同一瀏覽器上更改? (例如:用戶註銷和另一個用戶在同一瀏覽器上登錄)
3-我是否需要服務器端的#1和#2的任何特殊設置或PHP代碼?
也請給我一個關於任何有關XMLHttpRequest的安全問題的良好文檔的鏈接。
感謝
瀏覽器和服務器使用cookie來檢查請求是否發自同一瀏覽器。每個請求都會附上Cookie。
關於會話的基本思想很簡單。無論何時向服務器發送請求,會話變量(如果存在)都將與請求一起發送到服務器。 同樣,如果修改會話中的任何內容或清除會話,則響應將包含修改後的會話。由於請求和響應都包含會話,因此它們可以獨立運行。
通過在PHP中使用$ _SESSION,您將能夠檢索服務器中的會話。只需使用$ _SESSION ['userid'] ==來檢查它是否是同一個用戶。
我明白你是一個PHP人,但看看node.js請求和響應對象,以更好地瞭解會話。 此外,您可以加密服務器中的會話變量以確保安全。 Code Igniter會話庫就是一個很好的例子。
是的我是PHP人,我沒有強大的Javascript背景。使用$ .post時會默認發送會話和cookie嗎?還是我需要任何特殊的javascript代碼? – DeepBlue
Cookie將作爲標題與您的請求一起發送。無論如何,你不必在JavaScript中使用PHP來訪問它。 – nightgaunt