看板 Web_Design 關於我們 聯絡資訊
標題下的有點爛, 簡單說假設我有一個檔叫 sentMail.php, 公用是打開這個網頁, 會自動寄一封信給用戶。 如果用戶用某種方法一直訪問我這個頁面, 就會一直寄送信件出去, 浪費我的頻寬和資源。 請問有什麼方法可以阻止這樣的事發生? 其實解法是有想到, 像是利用 session 去紀錄時間比對, 太近的話就導到其它頁面。 請問有沒有更好的做法? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.116.154.128 ※ 文章網址: https://www.ptt.cc/bbs/Web_Design/M.1471329418.A.B23.html
ian90911: 所以你還是要給一般人用 但要控制頻率 08/16 15:55
imhaha: 寫時間排除 不然還有什麼方法XD? 08/16 16:27
pm2001: 你不覺得你這樣設計 從根本上就有問題嗎? 08/16 16:39
s89227: 你要想的是為什麼用戶會一直F5這個網頁? 08/16 16:40
xdraculax: 前一頁加上驗證碼,寄信頁用ajax或寄完轉址 08/16 17:50
aaa60600: event.keycode. 限制F5按鈕? 08/16 20:08
Kenqr: 在資料庫留紀錄 08/17 00:52
devil115789: 檔refresh不實際 可以F5 Ctrl+R 還有瀏覽器原生 08/17 09:57
devil115789: 還有最不可能檔就是他一直重新造訪這個頁面 08/17 09:58
devil115789: 所以發送信件通常是用上一次寄信的時間去檔時間間隔 08/17 09:58
devil115789: 用session也不是很好 因為開新的瀏覽器就還是可以發 08/17 09:59
devil115789: 比較好的做法還是去確認資料庫 避免不必要的資源消耗 08/17 09:59
Canboo: 你功能應該收在class或function內,在必要時呼叫 08/17 10:23
Canboo: 而不是直接用一個PAGE直接做這個功能然後也停在這PAGE 08/17 10:23
Canboo: 檢討整個資訊流先,才是最根本的處理方式 08/17 10:24
好,感謝各位大大的熱心回覆。 我會再想想怎麼處理比較好,再次感謝 ※ 編輯: elfpokemon (122.116.154.128), 08/17/2016 11:33:02
ssccg: 首先要先看是有驗證過身份的使用者,還是一般人? 08/17 11:36
ssccg: 以驗證過的使用者來說,就是server端的流程問題,要怎樣的 08/17 11:38
ssccg: 條件會去執行那個功能,一定不能是單純連到某頁面 08/17 11:39
shadowjohn: 通常發mail還是簡訊,都建議收到queue 08/17 13:07
shadowjohn: 用其他排程去作這件事 08/17 13:07
shadowjohn: 不要讓使用者畫面卡機或亂發,有個queue至少過濾方便 08/17 13:08
shadowjohn: 也利記錄 08/17 13:08