使用POST方法传递值的安全方法

时间:2017-04-29 04:25:38

标签: php html forms post input

我需要使用POST方法表单将一些值传递给另一个支付处理器站点。这些值类似于在我的帐户上生成的令牌,我目前正在使用输入类型=“隐藏”的基本表单。并且还有一个变量用sha1加密。但我关心的是它的安全性,因为type =“hidden”,可以在HTML中看到。在这种情况下,这样做的正确方法是什么,一般应该使用什么?我对此非常陌生,所以任何帮助都会受到赞赏。

一段代码:

   <?php $digest = SHA1($key . $order_number . $amount . $currency); ?>

  <input type="hidden" name="digest" value="<?php echo $digest; ?>">
  <input type="hidden" name="authenticity_token" value="123456">

2 个答案:

答案 0 :(得分:3)

如果您希望保护传输的数据免受窥探,那么答案不是在PHP或HTML中找到,而是在Web服务器本身中找到。

默认情况下,浏览器和服务器之间的数据是纯文本格式。甚至二进制数据也被编码为纯文本并在另一端进行解码。

保护传输的唯一方法是使用HTTPS作为协议。

这需要以下内容:

  • HTTPS证书。您可以从各个地方获取它们,例如GeoTrust。您也可以从许多第三方获得它们,例如GoDaddy或Name.com。如果您可以管理它,您也可以使用LetsEncrypt免费获取它们。
  • 需要安装证书。如果您在托管服务器上,则需要与它们一起组织。
  • 在您的链接和网址中,使用https://代替默认http://

使用可变编码方法在服务器和浏览器之间加密通信,这使得拦截变得不切实际并且浪费时间。 (当然,没有绝对保证。)

关于你的其他编码,请继续正常进行。设置完成后,加密是自动且透明的。

答案 1 :(得分:0)

如果您只想隐藏用户的数据,可以使用PHP中的会话。

如果您想从ISP获取数据,请阅读@Manngo的答案。他解释了一切。