關(guān)于表單重復(fù)提交的控制在不同的層面有不同的實現(xiàn)方法。最簡單的就是前端按鈕提交之后置灰控制倍啥。另外對于繞過前端惡意重復(fù)提交的行為就需要在服務(wù)端進(jìn)行控制。大致分為兩類。第一類為web容器對請求進(jìn)行控制拓轻,第二類為業(yè)務(wù)系統(tǒng)冪等控制。
這里介紹一下通過token實現(xiàn)web容器重復(fù)請求控制经伙。
原理: 1表單打開時向后端申請一個token扶叉。
2表單提交時將token一并提交
3controller處理請求時檢查token,如果token存在則刪除這個token并判定請求合法帕膜。
注意:redis要用刪除操作來判斷token枣氧,刪除成功代表token校驗通過,如果用select+delete來校驗token垮刹,存在并發(fā)問題达吞,不建議使用
實現(xiàn)例子:
? ? ? ? ? ? ? ? ? ? 1 創(chuàng)建一個TokenUtil類,用來生成token和token校驗
2獲取token的controller
? ? ? ? ? ? ? ? ? 3 token判定的應(yīng)用