您的位置:首页 > 编程语言 > PHP开发

PHP 安全手册 第六条 表单 不希望变动的数据要设置为常量 使用session 进行跟踪

2012-01-29 16:10 806 查看
define('EMAIL', 'chris@example.org');


如果用上面的语句进行定义,EMAIL在整个脚本运行中是一个值为chris@example.org的不变的常量,甚至在你把试图把它重新赋值时也不会改变(通常是不小心)。例如,下面的代码输出为chris@example.org (试图重定义一个常量会引起一个级别为Notice的报错信息)如下:。

CODE:

<?php
define('EMAIL', 'chris@example.org');
define('EMAIL', 'rasmus@example.org');
echo EMAIL;
?>


更加完美的方法为 使用SESSION进行跟踪

如果使用session跟踪,可以很方便地避免上述情况的发生:
CODE:

<?php
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);
}
}



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐