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

时间:2016-02-06 10:09:45

标签: php security post

我有此页面将数据发布到另一个网址。我尝试使用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>

但显然这是完全不安全的,任何使用像charles代理这样的程序的用户都可以拦截和更改这些数据。有没有办法保护它?验证不会起作用,因为用户知道我的数据库具有的数据类型,他们知道每个人的帐户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'/>";

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

1 个答案:

答案 0 :(得分:1)

上述评论中讨论的底线导致了您实际尝试的方法:

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