如何確定客戶端瀏覽器是否支持會話?確定會話是否已啓用客戶端
我正在做一個反氾濫的腳本 - 我想限制腳本的操作爲每個操作5秒,並且我想使用客戶端會話存儲unix時間,但首先我會有檢查它們是否被啓用。這有可能做到嗎?
如何確定客戶端瀏覽器是否支持會話?確定會話是否已啓用客戶端
我正在做一個反氾濫的腳本 - 我想限制腳本的操作爲每個操作5秒,並且我想使用客戶端會話存儲unix時間,但首先我會有檢查它們是否被啓用。這有可能做到嗎?
我假設你試圖限制每個客戶端每5秒運行一次以上的腳本。
Http是一個無狀態協議,PHP依靠cookie值(或參數值)來初始化服務器端的會話。瞭解這一點,單獨使用會話不足以阻止用戶每5秒鐘不止一次地淹沒您的腳本。用戶客戶端可以簡單地不發送請求中的cookie或會話ID參數,並且您必須將其視爲新會話。您將不得不使用其他識別用戶會話的方法。使用請求IP地址是一個好的開始,但可能不適合您(特別是因爲許多用戶可以擁有相同的面向公衆的IP)。
您可以使用其他方法。在每個頁面加載中,創建一個新的cookie(如果它尚不存在)。當你使用腳本時,你只需檢查cookie是否存在,如果它存在並且值正確,那麼一切都很好。否則,您將禁用腳本運行。
這將如何防止洪水? – zerkms
客戶端會話?你是指一個JS數據庫? –
如果沒有,他們仍然可以淹沒你。奇怪的方法。什麼被「淹沒」? – 2012-06-07 23:34:05
對好用戶(無意的行爲)或不好的用戶(故意行爲)是否是防洪? – zerkms