我有一个页面来激活用户点击我发送的电子邮件中的激活链接,该电子邮件包含一个使用GET方法发布电子邮件地址的网址,我的代码如下,但我要求的是这是一个安全的方法或者是有什么方法可以改进吗?谢谢
$username = $_GET['email'];
mysql_query("UPDATE users SET active = 'yes'
WHERE email = '$username'") or die('oops!');
echo "<meta http-equiv=\"refresh\" content=\"0;URL=/index.php?msg=active\">";
Run Code Online (Sandbox Code Playgroud)
这不是激活电子邮件的最佳方法.任何人都可以使用假电子邮件注册并创建自己的GET请求来激活它.你应该使用一个无法猜到的唯一哈希.此外,您需要使用mysql_real_escape_string转义SQL语句.
忘了mysql_real_escape_string
- 请参阅/sf/ask/398355681/#5690877和Do htmlspecialchars和mysql_real_escape_string保持我的PHP代码免受注入?.
使用PDO.
不要忘记二阶SQL注入(什么,没有人告诉你安全性很难?).更多信息在这里.
归档时间: |
|
查看次数: |
4990 次 |
最近记录: |