【问题标题】:Secure way of passing values using POST method使用 POST 方法传递值的安全方式
【发布时间】:2017-09-27 06:08:11
【问题描述】:

我需要使用 POST 方法表单将一些值传递到另一个支付处理器站点。这些值类似于在我的帐户上生成的令牌,我目前在这些值上使用输入 type="hidden" 的基本表单。还有一个变量用 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">

【问题讨论】:

    标签: php html forms post input


    【解决方案1】:

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

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

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

    这需要以下内容:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-07-14
        • 2023-02-14
        • 1970-01-01
        • 2013-04-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多