如何保护我的网站上的表单数据


How to protect form data on my site?

>我有这个页面将数据发布到另一个网址。我尝试使用 cURL 但没有工作,因为我需要将用户重定向到目标网站,而 cURL 只是将其引入当前网站。所以我正在做的是

<form action='http://destination.com' method='post' name='frm'>
 <input type='hidden' name='account_id' value='<?php echo $_SESSION["accont_id"]; ?>'>
</form>
<script>
 document.frm.submit();
</script>

但显然这是完全不安全的,任何使用查尔斯代理等程序的用户都可以拦截和更改这些数据。有没有办法保护它?验证不会完成这项工作,因为用户知道我的数据库拥有的数据类型,他们知道每个人的帐户 ID,我无法更改它。我能做什么?也许加密会起作用?即使用户能够更改数据,只要他们不能将其更改为其他有效帐户的 ID,就可以了。我正在思考类似秘密/哈希的东西,但无法在脑海中将所有内容放在一起。

我尝试使用这个:

$url = 'http://www.destination.com'; 
$curl = curl_init(); 
curl_setopt($curl, CURLOPT_HTTPHEADER, $header); 
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt($curl, CURLOPT_AUTOREFERER, true); 
curl_setopt($curl, CURLOPT_URL, $url);  
curl_setopt($curl, CURLOPT_POST, 1);  
curl_setopt($curl, CURLOPT_POSTFIELDS, 'account_id='.$_SESSION["account_id"]);  
curl_exec($curl);
curl_close($curl); 
echo "<meta http-equiv='refresh' content='0;url=http://destination.com'/>";

但是页面被重定向,没有数据到达。帖子不会通过

上面评论中讨论的底线导致了你实际尝试做的事情的这种方法:

向发布用户 ID 的远程系统发出 cURL 请求,以便服务器到服务器。远程系统创建一些随机令牌(随机 32 个字符的字符串)并返回该令牌,它将该令牌与发布的用户 ID 一起存储以供以后参考。现在,本地系统向客户端发送包含该令牌的重定向标头。这会导致客户端向远程系统发出请求,声称它被处理的令牌。远程系统检查存储的令牌,可以从中派生用户 ID,创建用户会话并删除令牌。