防止非法和重複提交

2021-05-12 20:57:15 字數 1212 閱讀 8324

第一,對於不支援post的,可以簡單的使用如下**

if ("post".equals(request.getmethod())) else  

如果是servlet, 可以將doget方法直接返回,不進行處理就行了

還可以採用特定的標誌來區分,比如

程式裡這樣判斷

if ("post".equals(request.getmethod()) && ("insert".equals(request.getparameter("action")))) else  

第二,判斷提交的**referer,**如下

if ("post".equals(request.getmethod()))    

// 正常進行

}else  

第三 防止重複提交的hashcode

在表單顯示頁面

//生成乙個formhash,演算法可以自己定,不隨便重複就可以了

string formhash = md5.encode(long.tostring(new date().gettime()));   

//讀取當前session裡面的hashcode集合,此處使用了set,方便判斷。

setformhashsession = (set) session.getattribute("formhashsession");   

if (formhashsession == null)    

// 檢測重複問題

while (formhashsession.contains(formhash))    

// 儲存到session裡面

formhashsession.add(formhash);   

// 儲存

session.setattribute("formhashsession", formhashsession); 

表單裡面增加如下字段

"hidden" name="formhash" id="formhash" value="<%=formhash%>" />  

防止重複提交

在jsp頁面的form中,新增 然後在提交的action類中 suppresswarnings unchecked scope prototype controller results parentpackage default interceptorrefs value interceptorre...

防止重複提交

過濾器 repeatable 過濾器 構建可重複讀取inputstream的request submit註解 package com.medaxis.config.interceptor.annotation import j a.lang.annotation.自定義註解防止表單重複提交 inhe...

後端介面防止重複提交 確認收貨防止重複提交

1 在呼叫介面時候肯定會出現ab同事請求介面的問題,當時我在做訂單確認收貨時候就遇到了這種問題,所以我的解決辦法是加上鎖來解決,在這裡我選擇用lock 裡的reentrantlock 在使用者請求方法時候,獲取到使用者id,放入lock,這也同乙個介面如果是2個相同使用者ab同時確認收貨時候,先到先...