自定义电子商务网站上的PHP会话安全性,我该怎么做?

时间:2012-03-07 10:44:54

标签: php session session-cookies

嗨我有一个网站即将上线,有一个非常简单的系统,客户可以从网站上购买单个项目。我正在使用PHP Sessions在客户浏览网站时存储客户的产品,个人和银行详细信息。

但是我担心我没有任何PHP会话安全性/不够或没有正确完成。我已经阅读了Chris Shiflett关于安全性的页面,并尝试实施他的方法,但我真的无法掌握或理解需要做什么,我认为我现有的工作甚至都没有工作。

我当前的代码非常小,只出现在任何带有“session_start()”的页面的开头,现在是:

session_start();

if (!isset($_SESSION['initiated']))
{
    session_regenerate_id();
    $_SESSION['initiated'] = true;
}

说实话,如果$ _SESSION ['initiated']不成真,我真的不知道除了重新生成会话ID之外还做了什么。

有人可以建议我可以在我的网站中实施一些会话安全方法以及您认为可能需要的任何其他安全措施。

提前致谢。

丹尼尔。

2 个答案:

答案 0 :(得分:0)

这将检查会话是否已存在($_SESSION['initiated'] == TRUE)。如果没有,它会创建一个。 PHP会话将会话信息存储到服务器上,因此它足够安全。

答案 1 :(得分:0)

你的代码错了我不明白为什么你这样写。

第一次请求时的逻辑:

if not exists create session_id
if user appears first time
  generate new session_id
  save initiated = true
show your page with initiated = true

出现第二个请求:

show your page with initiated = true

任何访问已启动= true且相同的session_id。如果是第一,第二,第三,那么所有时间都是如此。访问

所以你的代码只做一件事:在第一次访问时生成两个session_id并保存initiate = true,这不提供任何安全性。

您应该创建用户系统,然后保存用户购买的物品或类似物品

<强>更新

您可以向客户询问他的电子邮件地址,然后将确认信息发送到电子邮箱,将电子邮件和产品ID保存在数据库中,以便通过电子邮件发送一个产品。

是的,客户可以创建第二封电子邮件并尝试购买另一封电子邮件,但会话也可以被操作只需删除会话cookie或重新启动浏览器,您可以再购买一次..