我发送广告系列电子邮件以及包含敏感信息的电子邮件。我需要显示电子邮件的Web版本,目前我通过传递查询字符串中的所有内容来完成它,因为PHP页面将获取查询字符串并像任何其他网页一样显示它。但除了通过浏览器链接传递查询字符串之外,还有其他任何安全的方式来显示它吗?
这里可以进行任何加密(不是编码)吗?
我使用sendgrid作为电子邮件发布者,但我不想使用他们的网络版本,并且只想从我的PHP页面显示它。
答案 0 :(得分:1)
如果您的数据库中包含所有信息以便在第一个实例中准备电子邮件,那么无需通过查询字符串传递它以在浏览器中显示它。
您可以向数据库添加email_key
记录,并将其传递给查询字符串,如下所示:https://yoursite.com/email?email_key=randomkeythatmatchesthedb
。
您的脚本不是使用此唯一键来查找数据库中的信息,而是在浏览器中为用户构建电子邮件视图。
最重要的是,如果处理敏感信息,您必须确保它在数据库中正确加密,并确保浏览器中的查看调用是通过HTTPS传递的,而不是HTTP。
答案 1 :(得分:0)
您可以使用Crypt with salt生成唯一键并将其保存在数据库中。不是传递查询字符串中的所有内容,而是传递此唯一键,并根据此键获取详细信息并在屏幕上显示。
您可以在此密钥上附加到期时间,以使其更安全。
$unique_key = crypt($string_to encrypt, $unique_salt);