繁体   English   中英

在php session变量中使用电子邮件地址的好/坏主意?

[英]good/bad idea to use email address in php session variable?

我正在为客户的网站开发一些其他功能,该功能将电子邮件地址用作各种数据库(电子邮件营销系统,内部潜在客户数据库以及有助于弥合两者之间的差距的第三个共享数据库)之间的关键查找变量。

我担心将访问者的电子邮件地址存储为$ _SESSION变量可能会导致安全性问题(对于我们的网站而言,不是那么重要,但对于访问者而言)。

是否有人可以这样做或是否还有其他选择的建议或经验?

在$ _SESSION中存储值没有本质上的危险。 这完全取决于您是否提供了无意间将其输出到浏览器的代码。

重要的是要了解如何存储$_SESSION变量与如何使用cookie来检索它之间的区别。 会话中的所有数据都存储在服务器上(我相信默认情况下为/tmp ),并在请求之间保持不变。 默认情况下,没有会话数据直接存储在cookie中。

但是,PHP将存储具有唯一ID的cookie,该cookie可以通过特定会话标识您的用户(因此,如何通过不同的请求检索相同的信息)。

如果具有会话ID的cookie遭到破坏,则另一个用户可以模拟具有该会话的某个人。 这包括用户已经登录的经过身份验证的会话。如果发生这种情况,与暴露电子邮件地址相比,您可能会遇到更大的问题。

在会话中使用某种用户ID(而不是电子邮件地址)不是一个坏主意。 但是,还有许多其他可能更有用的方法可以为会话增加安全性。

看到这个问题: PHP Session Security

您可以在变量中使用部分电子邮件地址。 因此,例如,您可以使用电子邮件joe@bloggs.com中的名字joe。 然后使用另一个参数执行搜索。

另外,在将变量传递到数据库时,请始终使用mysql_real_escape_string(),并添加一些反斜杠以达到良好的效果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM