开发者社区> 航空母舰> 正文

防直接访问 防重复提交

简介:
+关注继续查看

防止直接访问PHP页面
1.可以在A加COOKIE,B判断COOKIE后用完删掉COOKIE
2. 使用$_SERVER['HTTP_REFERER'] 得到链接到当前页面的前一页面的地址
3.token令牌

Java代码  收藏代码
  1. <?php  
  2. /* 
  3. * PHP简单利用token防止表单重复提交 
  4. * 此处理方法纯粹是为了给初学者参考 
  5. */  
  6. session_start();  
  7. function set_token()  
  8. {  
  9.     $_SESSION['token'] = md5(microtime(true));  
  10. }  
  11.   
  12. function valid_token()  
  13. {  
  14.     $return = $_REQUEST['token'] === $_SESSION['token'] ? true : false;  
  15.     set_token();  
  16.     return $return;  
  17. }  
  18.   
  19. //如果token为空则生成一个token  
  20. if (!isset($_SESSION['token']) || $_SESSION['token'] == '') {  
  21.     set_token();  
  22. }  
  23.   
  24. if (isset($_POST['test'])) {  
  25.     if (!valid_token()) {  
  26.         echo "token error";  
  27.     } else {  
  28.         echo '成功提交,Value:' . $_POST['test'];  
  29.     }  
  30. }  
  31. ?>  
  32. <form method="post" action="">  
  33.     <input type="hidden" name="token" value="<?php echo $_SESSION['token'] ?>">  
  34.     <input type="text" name="test" value="Default">  
  35.     <input type="submit" value="提交"/>  
  36. </form>  

基于业务方面的控制

1)基于DB中退款订单状态的验证

2)利用数据库唯一索引机制的验证

3)基于缓存的计数器验证:

由于数据库的操作比较消耗性能,了解到redis的计数器也是原子性操作。果断采用计数器。既可以提高性能,还不用存储,而且能提升qps的峰值。还是以订单退款为例子:
每次request进来则新建一个以orderId为key的计数器,然后+1。如果>1(不能获得锁): 说明有操作在进行,删除。如果=1(获得锁): 可以操作。操作结束(删除锁):删除这个计数器。

 

前端防止重复提交,禁用按钮或链接

Java代码  收藏代码
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">  
  2. <html>  
  3. <head>  
  4. <title>测试</title>  
  5. </head>  
  6. <script language="javascript">  
  7. var t = null;  
  8. var flag = true;  
  9. function check(obj) {  
  10.     if (flag) {  
  11.         obj.disabled = flag;  
  12.         flag = false;  
  13.         t = setTimeout(function(){disable(obj)}, 5000); // 5秒间隔  
  14.         window.open("http://www.baidu.com""newWindow");  
  15.     }  
  16. }  
  17.   
  18. function disable(obj) {  
  19.     obj.disabled = flag;  
  20.     flag = true;  
  21.     if (t != null)  
  22.     clearTimeout(t);  
  23. }  
  24. </script>  
  25. <body>  
  26. <a href="#" onclick="check(this)">ceshi1</a>  
  27. </body>  
  28. </html>  

9秒后按钮激活代码

Java代码  收藏代码
  1. <input class="button" type="submit" name="rulesubmit" value="同 意" style="height: 23px">  
  2. <input class="button" type="button" name="return" value="不同意" style="height: 23px" onclick="javascript:history.go(-1);">  
  3. </center>  
  4. </form>  
  5.   
  6. <script type="text/javascript">  
  7. var secs = 9;  
  8. var wait = secs * 1000;  
  9. document.bbrules.rulesubmit.value = "同 意(" + secs + ")";  
  10. document.bbrules.rulesubmit.disabled = true;  
  11. for(i = 1; i <= secs; i++) {  
  12.         window.setTimeout("update(" + i + ")", i * 1000);  
  13. }  
  14. window.setTimeout("timer()", wait);  
  15. function update(num, value) {  
  16.         if(num == (wait/1000)) {  
  17.                 document.bbrules.rulesubmit.value = "同 意";  
  18.         } else {  
  19.                 printnr = (wait / 1000) - num;  
  20.                 document.bbrules.rulesubmit.value = "同 意(" + printnr + ")";  
  21.         }  
  22. }  
  23. function timer() {  
  24.         document.bbrules.rulesubmit.disabled = false;  
  25.         document.bbrules.rulesubmit.value = "同 意";  
  26. }  
  27. </script>  

jQuery one当使用 one() 方法时,每个元素只能运行一次事件处理器函数

Java代码  收藏代码
  1. $("p").one("click",function(){    
  2. });  
2324

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
如何解决网站被篡改提示该站点可能受到黑客攻击,部分页面已被非法篡改!
最近一段时间,我们SINE安全公司一连接到数十个公司网站被跳转到彩票,博彩网站上去,客户反映从百度搜索网站进去,直接跳转到彩票网站上,直接输入网址没有跳转,导致客户网站的流量急剧下滑,做的百度推广跟搜狗推广,都给彩票网站做广告了,公司领导高度重视网站安全的问题,因为给公司的形象以及名誉带来的损失太大了,我们安排安全技术人员对其网站进行全面的网站安全检测,对网站存在的漏洞,以及木马后门进行全面的清除与漏洞修复,安全加固。
6347 0
网站后台数据被入侵篡改了如何解决
网站后台被黑客攻击了怎么办,最近接到一个客户的诉求反映说网站被攻击了后台数据总是被篡改和泄露,而且维持这个状况已经很长时间了,了解完才发现原来早期用的是thinkphp系统源码来搭建的网站,代码版本可以来说是非常古董的,而且后台漏洞非常的多,后面找了一个技术来解决这个问题,但是这个过程他又花了不少时间和钱,漏洞修完过段时间又被反反复复的篡改会员数据,于是他们干脆就改成了完全静态的网站,这个方法只能是治标不治本。
78 0
烟草网站如何实现防攻击、防病毒、防篡改
网站,作为企业网络公众形象的载体,承担了企业形象宣传的重任。在我国,烟草施行的是国家专卖制度,既关注行业行政管理,又关注企业的生产运营,烟草网站既担负着政策信息发布、政府信息公开的职责,又兼有面对烟草企业、消费者等进行信息交互的职责。
1620 0
8种方法突破iGuard网页防篡改软件保护
前段时间在搞一个受到网页防篡改保护的网站,之前不知道有这东西,后来在植入web后门的时候,老是被删掉,郁闷.
1059 0
+关注
航空母舰
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载