【问题标题】:protect http request URL保护 http 请求 URL
【发布时间】:2014-03-28 13:01:53
【问题描述】:

我正在将远程 JSON 值输入到我的客户端应用程序中,如下所示。

var $Xhr = Ti.Network.createHTTPClient({
        onerror : function($e) {
            Ti.API.info($e);
        },
        timeout : 5000,
    });

$Xhr.open("GET", "http://***********.json");
    $Xhr.send();
    $Xhr.onload = function() {
        if ($Xhr.status == 200) {
            try {
                Ti.API.info(this.responseText);
            } catch($e) {

                Ti.API.info($e);
            } finally {
                $Xhr = null;
            }
        }
    };

我的 json URL 是静态的。在为 iOS 创建 APK 文件或发布后,我想保护这个 URL 不被陌生人看到。

我的服务器端也支持 PHP。我有 MD5、SHA 等,但我没有开发任何关于这个算法的项目。

您有什么建议或方法吗?

提前谢谢你。

【问题讨论】:

  • “保护”是什么意思?
  • 无法保护...
  • 在你的服务器上代理它
  • 如何代理?我无法理解。
  • @Bartdude 这意味着只有应用用户可以访问此 json。

标签: javascript php apache appcelerator-mobile


【解决方案1】:

我只想说你不可能“隐藏”终点。您的 url 将始终对用户可见,否则用户的浏览器将不知道如何将其实际发布到您的服务器。

如果您只想隐藏 json 对象,那也不完全可能。如果您的 javascript 知道值是什么,那么您的任何足够聪明的客户端都可以理解 javascript 将能够解码您编码的 json 对象。请记住,您的 javascript 已解码对象,用户将拥有对它的完全访问权限。对此没有任何保护措施。充其量,您可以通过使用 md5 或 sha 编码来将其隐藏在日常用户之外。

【讨论】:

    【解决方案2】:

    如果您希望仅对应用用户进行访问,您需要先对用户进行身份验证。

    一旦他们通过身份验证,您应该通过连接用户 ID(或任何用户识别数据)和您知道的密钥(字符串会这样做)来生成哈希,并使用任何哈希方法对其进行哈希处理,md5 就足够了这种用法我猜,SHA还是不错的。

    下一步是将此哈希与每个 AJAX 请求一起发送到您的服务器。将其视为附加数据。

    最后,在服务器端,在处理请求并获取要发送的数据之前,只需使用请求用户的用户 ID 和您选择的相同“秘密”密钥,以与您在应用中相同的方式生成哈希.您现在可以比较两个哈希值并查看它们是否相同。如果不是,那么可能是有人试图从您的应用外部伪造请求。

    请注意,经过身份验证的人可能会获取他的哈希(取决于他的 ID),然后在他的一个应用程序中使用它,因此最好在服务器端跟踪请求以便检查您的 API 是否存在任何可疑的使用情况。您也可以定期更改您的“密钥”(尽管强制更新您的应用程序)或在您的应用程序和服务器代码中为一年中的每一天定义一个具有不同密钥的数组,以便每个单独的哈希键每天都会更改,每年重复一次。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-08
      • 2014-05-02
      • 1970-01-01
      • 2013-04-06
      • 1970-01-01
      • 2016-12-27
      • 2011-03-05
      • 2011-02-11
      相关资源
      最近更新 更多