【问题标题】:Safe JavasScript that calls PHP script that calls external web service调用外部 Web 服务的 PHP 脚本的安全 JavaScript
【发布时间】:2010-10-15 10:56:51
【问题描述】:

我有一个 PHP 页面需要调用外部 Web 服务。此 Web 服务调用从 PHP 页面上的 html 表单中获取一堆敏感数据,例如SSN,并返回与该人相关的信息。

问题是,一旦客户填写了 SSN 字段并且该字段失去焦点,就应该进行 Web 服务调用,因此无法以任何方式重新加载页面。我正在考虑使用 jQuery 来调用 Web 服务,但不幸的是,AJAX 要求您与请求的资源在同一个域中。所以我正在考虑创建一个本地 PHP 页面来调用 Web 服务,然后使用 JQuery 来调用这个新页面。

问题:

  1. 如何使用 JQuery 调用本地 PHP 脚本来调用 Web 服务?

  2. 由于 JQuery 代码会从 html 表单中获取敏感数据并将其发送到 PHP 脚本,我该如何加密数据?

【问题讨论】:

    标签: php javascript security jquery


    【解决方案1】:

    调用你的 PHP 文件:

    var url = "http://localhost/data.php";
    var params = {
      "SSN" : theSSN
    };
    $.get(url, params, function (){
      // Do whatever you need here, once the data arrives.
    });
    

    要从 PHP 调用外部 Web 服务,我建议使用 cURL

    要加密,我建议使用 HTTPS 协议而不是从 JavaScript 手动加密。

    【讨论】:

    • 在 PHP 脚本中,如何返回数据以便 jquery 调用接收?我试过回显和返回,但不起作用。
    • 一个很好的方法是回显一些 JSON 数据。但是您需要使用 $.getJSON 而不是 $.get。查看 json_encode PHP 函数;它将您的 PHP 数据转换为 JS 格式,以便在 JS 世界中进一步阅读。这就是我几乎总是做的:)
    【解决方案2】:

    1) $.get("myscript.php", function(response) { alert(response) });

    2) 我不会使用 jQuery 加密,它会很慢而且很容易解密。在服务器上启用 SSL 会是更好的解决方案。

    【讨论】:

      【解决方案3】:

      1:Ajax 请求示例:

      $.ajax(
      {
             type: "GET",
             url: "http://yourdomain.com/yourpage.php",
             success: function (msg) { //does something }
      });
      

      更多详情here

      2:php XOR 是一个很好的加密算法,我自己用它来做一个敏感数据的项目。你可以找到函数here

      享受吧! :)

      【讨论】:

      • 异或加密也需要客户端的密钥,所以它不是那么安全。更强的加密方法是不对称的。
      • 一些数据可以在第一页(带有表单的页面)执行时被加密(如果数据不是用户写的)
      【解决方案4】:

      这可能对您没有特别的帮助,但是一些 web 服务支持称为 JSONP 的东西,它为普通的 JSON 请求添加一个回调名称。

      但是,您可能需要制作某种本地代理,因为目前还没有多少 JSONP 服务。

      【讨论】:

        【解决方案5】:

        要走的路是在您的域上启用 SSL,并对远程服务的 https 执行 xmlHTTPRequest

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-11-09
          • 2016-04-29
          • 2014-03-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-04-02
          相关资源
          最近更新 更多