发布/重定向/获取模型 - 会话和&安全

时间:2010-06-26 00:44:24

标签: php html forms

我正在寻找使用PRG模型构建电子商务表单。我的问题是如何在每次页面转换期间如何最好地保存用户信用卡信息(第1页输入,第2页评论/提交,第3页,谢谢) - SESSION是处理此问题的最佳方式,并且足够安全?如果不在SESSION中存储,我还能怎么做?我会在事务完成后取消设置SESSION var。在将信息存储在SESSION中时,是否有一种加密信息的简单方法?你的想法很受欢迎。

3 个答案:

答案 0 :(得分:0)

默认情况下,会话高度安全。例如,它们未在磁盘上加密。如果您想加密会话中的值,您可以使用您选择的加密扩展轻松地完成此操作,就像PHP中的任何其他变量一样。

话虽如此,你不应该这样做。检查您的信用卡服务。有可能它们提供了执行授权过程和卡的实际充电的能力,这是一个两步过程。您可以立即授权卡并存储交易信息(在数据库中!),而不是存储用户的信用卡数据。之后,当实际为卡充电时,您可以提供授权信息。有关此技术的更多信息,请查看信用卡处理器的API文档。

此过程可能不适合可能具有非平凡处理时间的事物。您可能只想在用户的卡上持有一两天的授权。

某些处理器允许您在卡上放置一个小授权(例如,$ 1- $ 5),然后取消交易。之后,他们允许您使用原始授权作为参考,并向卡收取适当的金额,而无需拥有原始卡信息。并非所有处理器都允许这样做。在这之前检查一下。

答案 1 :(得分:0)

在PHP中使用SESSION并不是一种加密信用卡等潜在敏感信息的方法,而是允许程序员有办法在无状态协议(HTTP)中获取有状态信息。话虽如此,如果您希望能够安全地处理事务,您可能希望查看SSL,它使用公钥加密技术在客户端和Web服务器之间建立安全连接。这是用于HTTPS连接的协议。

使用SESSION与使用加密是Web应用程序的两个不同领域,创建安全连接在很大程度上与使用SESSION无关。使用SESSIONs,您将能够保留其信用卡信息,并且通过SSL,您将能够安全地处理交易。

幸运的是,实施SSL相对简单并且抽象了:

<form method="post" action="https://securestuff.ecommerce.com/process.php">

请注意使用https://而不是http://

如果你想在数据库中保留信用卡号码,那就是一个不同的野兽,但看起来你似乎不需要它:)

答案 2 :(得分:0)

会话不安全,存在安全风险,例如:

我建议您将您的敏感数据存储到数据库,而不是以加密的方式存储,然后跨页读取。