使用base64保护表单数据?

时间:2017-12-13 08:49:01

标签: php forms email encryption base64

在我的表单中,我必须在hiddenFields div中包含一系列要发送的详细信息。

对于'sender_name','sender_email'和'subject',我想确保这些数据是安全的,无论如何都要帮助停止获取详细信息。

我目前正在使用'base64'对这些进行编码,然后在处理和通过电子邮件发送表单数据之前解码它们。

<form action="" class="" etc>

    <div class="hiddenFields">
        <input name="sender_name" value="Q2hyaXN0b3BoZXIgWVz" type="hidden">
        <input name="sender_email" value="aW5mb0BjJpc2Rhdmllc3dlYmRlc2lnbi50=" type="hidden">
        <input name="subject" value="TmV3IENvbnRgRW5xdWlyeQ==" type="hidden">
        <input name="required" value="name|email|message" type="hidden">
        <input name="return" value="contact-sent" type="hidden">
        <input name="ACT" value="66" type="hidden">
        <input name="RET" value="index.php/contact" type="hidden">
        <input name="site_id" value="1" type="hidden">
        <input name="csrf_token" value="7420f717d3135576cd605be5ccc6b92dcc" type="hidden">
    </div>

    FIELD GO HERE

</form>

有没有人有任何理由这是个坏主意?或者,如果有更好的替代方案来加密数据呢?

1 个答案:

答案 0 :(得分:2)

  

有人有任何理由这是个坏主意吗?

Base64是编码,而不是加密。信息不会被隐藏,它只是以另一种形式表示。 Basicaly任何人都可以获取值并解码为普通字节(字符串,数字,无论它是什么)。

让我们决定您要隐藏的内容和位置。

如果您想隐藏来自任何第三方窃听者(中间人)的数据,只需使用基本TLS(https)即可。它将照顾您的机密性和完整性。

如果要隐藏发送表单的(Web)客户端中的数据,那么最好的选择是在可能的情况下将信息保留在服务器上。

如果必须保持服务器无状态(不在服务器端存储任何内容),则应正确加密数据(这意味着要使用一些密钥,salt,身份验证标记,......)。

如果您不知道从哪里开始,可能会使用一些encrypted JWT token作为发布值,这是安全的选择。