PHP - 通过各种用户操作的表单安全地发送数据

标签 php forms security post encryption

假设我有一个表单,它根据用户在多状态流程中的当前状态更改其内容(字段和选项)。假设它总是导致相同的 Action ,这意味着该 Action 需要弄清楚发生了什么事件以及发生在哪个实体上。

<form action='/somecontroller/someaction' method='post'></form>

将此敏感数据传输到 Controller 的最常见方式是什么?我什至不愿意建议隐藏字段,因为任何人都可以更改这些字段。某种类型的双向加密,然后在操作中解密并用于确定其余部分,服务器端?也许序列化敏感信息,对其进行加密,并将其放入表单客户端的单个隐藏字段中,然后在 Controller 中解密和反序列化?

<?php

$hiddenData = unserialize($this->decrypt($_POST['hiddenData'], SALT));
unset($_POST['hiddenData']);
$data = array_merge($hiddenData, $_POST);
...

基本上 - 我如何安全地发送一些带有表单的数据而不将其暴露给外部更改,也就是说,不确保如果更改它会出现问题?是否有关于此的某种最佳实践?

最佳答案

您根本不会将该数据发送给客户端。

将它存储在 session 管理功能的服务器端(对于 PHP,您可以使用 $_SESSION 变量访问它)并且只发送 session token (长随机数,PHP 也有生成/维护良好 session 标识符的例程) 到客户端(通常以 cookie 的形式完成)。为了跟踪多步骤过程中的数据(包括用户所处的状态),您永远不想将其公开给客户端。

关于PHP - 通过各种用户操作的表单安全地发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9683863/

相关文章:

php - 我如何将 HTML 格式化为类似于 MS Word 的两列格式?

php - 自动化网站开发,如 wix.com 、 edicy.com 等

php - 使用 php Api 端点进行 Swift 网络调用

android - 输入类型 ="file"接受 ="image/*"捕获 ="camera"不适用于移动设备

c++ - 条码安全与自己开发的软件

php - 如果列为空,MySQL 选择行并忽略行

ruby-on-rails - 提交按钮文本来自哪里(Ruby on rails)?

javascript - <s :select> drop down issue when using default option as empty

MySQL 加密列

asp.net - 将文件存储为数据库中的字节数组,安全风险?