如往数据库 中插入一条数据成功后跳转到下一个页面后 然后返回 又插入了一条 怎么避免
那就在你的POST表单里加个一次性“凭证”呗,凭证由生成表单页面的逻辑签发,存入缓存;然后在接受POST的逻辑里检查凭证的有效性,有效则执行保存写入数据库,并清理掉这个凭证;
1.第一次请求,凭证未超时且有效,通过。
2.返回请求地址,实际是POST了一模一样的数据过去,但凭证已经被第一次清理,会检测到凭证失效。
3.多次被模拟(恶意)POST请求,凭证为前后关联,且具有时效性和一次性特点,也不会执行保存数据。
试试看,苦海无边,望君保重 - -!
表单每次生成一个唯一且变化的token
,同时生成对应的session
,然后提交的时候,校验这个token。当插入数据库成功后,就清空这个session。即使重复点击,token也失效了!
1 回答4.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答2.3k 阅读✓ 已解决
2 回答743 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.3k 阅读
1 回答691 阅读✓ 已解决