本文实例讲述了php通过session防url攻击方法。分享给大家供大家参考。具体实现方法如下:
通过session跟踪,可以很方便地避免url攻击的发生,php采用session防url攻击方法代码如下:
复制代码 代码如下:
session_start();
$clean = array();
$email_pattern = '/^[^@s]+@([-a-z0-9]+.)+[a-z]{2,}$/i';
if (preg_match($email_pattern, $_POST['email']))
{
$clean['email'] = $_POST['email'];
$user = $_SESSION['user'];
$new_password = md5(uniqid(rand(), TRUE));
if ($_SESSION['verified'])
{
/* Update Password */
mail($clean['email'], 'Your New Password', $new_password);
}
}
?>
使用时URL可设置如下:
http://example.org/reset.php?user=php&email=chris%40example.org
如果reset.php信任了用户提供的这些信息,这就是一个语义URL 攻击漏洞,在此情况下,系统将会为php 帐号产生一个新密码并发送至chris@example.org,这样chris 成功地窃取了php 帐号.
希望本文所述对大家的PHP程序设计有所帮助。
时间: 2014-12-07
本文介绍了如何使用PHP的session机制来防范URL攻击。通过检查并验证用户提交的邮箱地址,确保在密码重置过程中不会受到恶意用户的攻击。示例代码展示了如何在用户请求重置密码时生成新的随机密码,并只对已验证的用户更新密码。同时,文章提醒开发者注意不要直接信任URL参数,以防止潜在的安全风险。
1339

被折叠的 条评论
为什么被折叠?



