【问题标题】:How Do I encrypt post data while using ajax and JQuery?如何在使用 ajax 和 JQuery 时加密发布数据?
【发布时间】:2009-04-17 12:48:34
【问题描述】:

服务器端我们可以对用户进行身份验证,但是当 ajax 或 JQuery 发送数据时,我希望数据安全。就像在客户端一样,有人只能以加密格式查看任何调用的参数。 那么我该怎么做。我在这个网站上看到过这种情况。

编辑

当数据来自服务器时,我们可以忽略加密数据。 但至少在发送时它是必需的。 请在您的 首选项 中查看此站点上的示例,以设置通知复选框。 可以在 Mozilla firefox 中使用 firebug 插件来查看请求。

【问题讨论】:

    标签: jquery asp.net-mvc


    【解决方案1】:

    你不能。

    如果浏览器(即 JavaScript)应该读取/使用这些值,它们必须是明文。你可能想出的任何加密/加扰方案都会被固有地破坏,因为 JavaScript 本身必须能够解密/解扰数据,因此任何具有中等智慧的人都可以访问源代码将能够弄清楚。

    您可以执行 SSL 请求来加密服务器连接,对第三方隐藏数据。

    【讨论】:

    • 使用 SSL 是最好的选择,但可以进行加密,但它增加了可能不值得冒险的复杂性,尤其是因为 ajax 可以隐藏大量正在发生的事情。
    • @James Black:但它仍然不安全,而且永远不会。隐藏一些东西并添加一些箍是没有意义的。
    【解决方案2】:

    您可以使用一些库来加密数据,例如 http://home.versatel.nl/MAvanEverdingen/Code/,但正如上面提到的,有人可以使用调试器对其进行逆向工程以查看密钥。

    为了安全地执行此操作,您需要有一个服务器的公钥,它会使用它从服务器获取对称密钥,服务器使用它的私钥加密密钥。

    javascript 然后用公钥解密对称密钥。

    现在,这个对称密钥用于加密数据。

    如果数据足够小,那么您可以使用公钥来加密数据,但根据您的公钥大小存在大小限制。

    所以,是的,你可以做到,但它可以被逆向工程。

    【讨论】:

      【解决方案3】:

      如果您的问题只是加密用户发送的数据,请在服务器上使用 SSL,以便加密与它的连接。您的 AJAX 网址将是 https://myserver.com/Ajax/Endpoint 或其他。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-08-28
        • 1970-01-01
        • 2023-04-02
        • 1970-01-01
        • 2012-07-21
        • 2016-07-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多