【问题标题】:Creating REST service between PHP and Android在 PHP 和 Android 之间创建 REST 服务
【发布时间】:2016-07-23 21:50:25
【问题描述】:

我在 phpmyadmin 中有 3 个 php 文件。其中 2 个是私有的,其中一个是公共的。当我去公共链接时,例如:

mysite./public_php_script.php

它显示了这个

{"teachers":[{"tid":"1","name":"g\u00f6ksel","surname":"biricik","password":"xxxx","tc":"12345678912","email":"goksel@ce.yildiz.edu.tr","avatar":"goksel.jpg"},{"tid":"2","name":"haydar","surname":"ayg\u00f6rmez","password":"xxxx","tc":"12345678913","email":"aygormez@gmail.com","avatar":"haydar.jpg"},{"tid":"48","name":"Caner","surname":"Ayd\u0131n","password":"xxxx","tc":"12345678914","email":"caneraydinbey@gmail.com","avatar":"caner.jpg"},{"tid":"92","name":"deneme","surname":"denemesoy","password":"xxxx","tc":"12345678914","email":"deneme@gmail.com","avatar":"5292-1017.png"},{"tid":"93","name":"deneme2","surname":"denemesoy2","password":"xxxxx","tc":"12345678915","email":"deneme2@gmail.com","avatar":"8446-1012.png"}],"success":1}

我想获取教师数据库数据。如您所见,这些都是公开的,密码也是公开的。我能做些什么?我还没有连接android。

我不应该公开使用这个 php 脚本吗?但是我怎样才能在私有文件中获取这些数据呢?

我应该将 sql 中的密码屏蔽为 php 脚本中的密码吗?但这一次,我怎么能上安卓呢?

我不应该得到密码,但我需要它来检查登录是否正确?

或者对于登录部分,我应该在获取登录密码时使用post方法进行比较吗?此脚本将公开供 android 访问,如果正确,将检查并返回 true,但这次每个人都可以使用此脚本检查密码?

【问题讨论】:

  • 您需要使用某种机制来授权访问该资源,否则任何人都可以连接到它并检索这些密码。
  • 这个机制在android端还是作为php脚本或者在数据库中?
  • 在 php 方面,您要保护的是 php,您不希望任何人能够在未经身份验证的情况下检索该数据。
  • 但是对于android端,解析json或者发布用户名密码方法会一样吗? stackoverflow.com/questions/28761558/… 例如,这里的android代码是一样的吗?
  • 是的,你在php端授权,但是你必须调用授权,并在客户端(android)上传播结果。像这样:Android 向 php 请求授权,php 返回一个 auth 令牌,android 将此 auth 令牌添加到所有后续调用中,php 在每次调用时验证此令牌。

标签: php android mysql


【解决方案1】:

不是从服务器获取密码,而是将凭据发送到服务器进行验证。将用户名和密码发送到服务器以检查是否正确。验证用户名和密码后,为该用户生成会话密钥。它将保存在 android 应用程序中,应用程序将使用它进行进一步的通信,例如添加、检索、更新和删除记录。

【讨论】:

  • 此脚本将公开供 android 访问它并检查并在正确时返回 true 但这次每个人都可以使用此脚本检查密码?
  • 对尝试错误的密码应用限制,超过限制后采取必要的措施。
猜你喜欢
  • 1970-01-01
  • 2011-04-01
  • 2015-12-20
  • 2010-11-29
  • 2012-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多