【发布时间】:2012-03-13 21:10:00
【问题描述】:
假设我有一个表单,它根据用户在多状态过程中的当前状态更改其内容(字段和选项)。假设它总是导致相同的动作,这意味着动作需要弄清楚发生了什么事件以及发生在哪个实体上。
<form action='/somecontroller/someaction' method='post'></form>
将这些敏感数据传输到控制器的最常用方法是什么?我什至不愿意建议隐藏字段,因为任何人都可以更改这些字段。某种类型的双向加密,然后在操作中解密并用于确定服务器端的其余部分?也许序列化敏感信息,加密它,然后将它放在表单客户端的单个隐藏字段中,然后在控制器中解密和反序列化?
<?php
$hiddenData = unserialize($this->decrypt($_POST['hiddenData'], SALT));
unset($_POST['hiddenData']);
$data = array_merge($hiddenData, $_POST);
...
基本上 - 我如何安全地发送一些带有表单的数据,而不会将其暴露给外部更改,也就是说,如果不确保更改后会出现问题?在这方面有什么最佳实践吗?
【问题讨论】:
-
您使用服务器端会话存储来执行此操作,例如
$_SESSION。唯一公开共享的是会话标识符 (session_id()),但该会话存储中的所有数据都保存在服务器端。
标签: php forms security post encryption