当前位置:首页 > PHP教程 > php应用 > 列表

php跨站攻击实例分析

发布:smiling 来源: PHP粉丝网  添加日期:2021-04-19 10:54:37 浏览: 评论:0 

这篇文章主要介绍了php跨站攻击的原理与防范技巧,以具体实例对php跨站攻击进行了较为详细的分析,是非常实用的技巧,需要的朋友可以参考下

本文实例讲述了php跨站攻击的原理与防范技巧。分享给大家供大家参考。具体方法分析如下:

跨站攻击就是利用程序上的一些细节或bug问题进行的,那么我们要如何耿防止跨站攻击呢?下面就以一个防止跨站攻击例子来说明,希望对各位有帮助,代码如下:

  1. <?php 
  2. #demo for prevent csrf 
  3. /** 
  4. * enc 
  5. */ 
  6. function encrypt($token_time) { 
  7. return md5('!@##$@$$#%43' . $token_time); 
  8. $token_time = time(); 
  9. $token = encrypt($token_time); 
  10. $expire_time = 10; 
  11. if ($_POST) { 
  12. $_token_time = $_POST['token_time']; 
  13. $_token = $_POST['token']; 
  14. if ((time() – $_token_time) > $expire_time) { 
  15. echo “expired token”; 
  16. echo “<br />”; 
  17. }//www.phpfensi.com 
  18. echo $_token
  19. echo “<br />”; 
  20. $_token_real = encrypt($_token_time); 
  21. echo $_token_real
  22. //compare $_token and $_token_real 
  23. ?> 
  24. <!DOCTYPE html> 
  25. <html> 
  26. <head> 
  27. <meta http-equiv=”content-type” content=”text/html; charset=utf-8″ /> 
  28. <title>test for csrf</title> 
  29. <meta http-equiv=”" content=”" /> 
  30. </head> 
  31. <body> 
  32. <form method=”post” action=”"> 
  33. <input type=”text” name=”text” id=”" value=”hello” /> 
  34. <input type=”hidden” name=”token” id=”" value=”<?php echo $token ?>” /> 
  35. <input type=”hidden” name=”token_time” id=”" value=”<?php echo $token_time ?>” /> 
  36. <input type=”submit” name=”submit” id=”" value=”submit” /> 
  37. </form> 
  38. </body> 
  39. </html> 

通过在你的表单中包括验证码,你事实上已经消除了跨站请求伪造攻击的风险。可以在任何需要执行操作的任何表单中使用这个流程

当然,将token 存储到session更好,这里只是简单示例下

简单分析:

token防攻击也叫作令牌,我们在用户访问页面时就生成了一个随机的token保存session与表单了,用户提交时如果我们获取到的token与session不一样就可以提交重新输入提交数据了

希望本文所述对大家的php程序设计有所帮助。

Tags: php跨站攻击

分享到:

相关文章