【问题标题】:Secure PHP JSON output result on web server在 Web 服务器上保护 PHP JSON 输出结果
【发布时间】:2017-05-24 07:33:38
【问题描述】:

我正在使用 phonegap 构建应用程序,应用程序提交并从位于服务器(网站)上的 MySQL 数据库中获取数据。 IM成功提交数据并在app上获取数据。

通过 ajax 通过 php 文件 (www.example.com/fetch.php) 从我的网络服务器上的位置获取数据。但是当我从浏览器访问同一个文件时,它会显示以 json 格式公开的完整数据库。

有什么方法可以保护数据吗?或仅使用任何令牌或身份验证来访问我的应用程序和不允许查看的浏览器?

感谢您对广告的帮助

【问题讨论】:

  • 通过php将文件交回,并阻止该文件类型被服务器访问。这样,您处理文件的 php 脚本可以设置为只有应该能够看到它的人才能访问

标签: javascript php jquery ajax phonegap


【解决方案1】:

您可以添加额外的数据发送到您的服务器。令牌或验证就可以了。

然后在回显您的 json 数据之前添加您的条件。

示例: 将您的应用程序令牌设置为发送到您的服务器(例如,令牌是“12345”),以便您的服务器知道请求来自您的应用程序。然后将此代码添加到您的服务器。

$token = intval($_POST['token']); // if you are using POST Method, but you can change it to $_GET if you are using GET method.

if($token == '12345'){
  echo json_encode($your_json_data);
}else{
  //display something
}

或者在你的服务器端试试这个

if(isset($_GET['hash'])){
      echo json_encode($your_json_data);
    }else{
      //display something
    }

【讨论】:

  • OK an 如何通过我的 ajax 添加这个令牌?目前我有以下格式的 ajax: $.ajax({ type: "GET", data : { getContent : true, hash : '0800fc577294c34e0b28ad2839435945' }, url: "example.com/gap/json.php", crossDomain: true, success: function(result ){ 等等...
  • 在 ajax 调用上显示:位置 0 处 JSON 中的意外标记 e 可能是什么问题?
  • 我想我这里有一个错字。 @VickyParab 你可以直接把这个data : { getContent : true, hash : '0800fc577294c34e0b28ad2839435945' },加到data : { getContent : true, hash : '0800fc577294c34e0b28ad2839435945', token: '12345' }
  • 第一个对我有用,我只是搞砸了 GET 和 POST,我正在使用 get 方法,在服务器端更改方法它有效。非常感谢您的帮助!欣赏。
  • 是的,我会按照这个来获取密钥,谢谢
猜你喜欢
  • 1970-01-01
  • 2013-10-19
  • 1970-01-01
  • 2023-03-26
  • 2010-09-12
相关资源
最近更新 更多