php通过session防url攻击方法

这篇文章主要介绍了php通过session防url攻击方法,可通过session获取用户名再传入URL来防止URL攻击,是非常实用的技巧,需要的朋友可以参考下

本文实例讲述了php通过session防url攻击方法。分享给大家供大家参考。具体实现方法如下:

通过session跟踪,可以很方便地避免url攻击的发生,php采用session防url攻击方法代码如下:

  1. <?php
  2. session_start();
  3. $clean = array();
  4. $email_pattern = '/^[^@s<&>]+@([-a-z0-9]+.)+[a-z]{2,}$/i';
  5. if (preg_match($email_pattern, $_POST['email']))
  6. {
  7. $clean['email'] = $_POST['email'];
  8. $user = $_SESSION['user'];
  9. $new_password = md5(uniqid(rand(), TRUE));
  10. if ($_SESSION['verified'])
  11. {
  12. /* Update Password */
  13. mail($clean['email'], 'Your New Password', $new_password);
  14. }
  15. }
  16. ?>

使用时URL可设置如下:

http://example.org/reset.php?user=php&email=chris%40example.org

如果reset.php信任了用户提供的这些信息,这就是一个语义URL 攻击漏洞,在此情况下,系统将会为php 帐号产生一个新密码并发送至chris@example.org,这样chris 成功地窃取了php 帐号.

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