相关疑难解决方法(0)

REST API基于令牌的身份验证

我正在开发一个需要身份验证的REST API.因为身份验证本身是通过HTTP上的外部Web服务发生的,所以我推断我们会分配令牌以避免重复调用身份验证服务.这让我整整地回答了我的第一个问题:

这真的比仅要求客户端在每个请求上使用HTTP Basic Auth并缓存对身份验证服务端的调用更好吗?

Basic Auth解决方案的优点是在内容请求开始之前不需要完整的服务器往返.令牌可能在范围上更灵活(即仅授予对特定资源或操作的权限),但这似乎比我更简单的用例更适合OAuth上下文.

目前令牌是这样获得的:

curl -X POST localhost/token --data "api_key=81169d80...
                                     &verifier=2f5ae51a...
                                     &timestamp=1234567
                                     &user=foo
                                     &pass=bar"
Run Code Online (Sandbox Code Playgroud)

api_key,timestamp并且verifier被所有请求所需."验证者"由以下人员返回:

sha1(timestamp + api_key + shared_secret)
Run Code Online (Sandbox Code Playgroud)

我的意图是只允许来自已知方的呼叫,并防止呼叫被逐字重用.

这够好吗?漏杀?矫枉过正?

有了令牌,客户可以获得资源:

curl localhost/posts?api_key=81169d80...
                    &verifier=81169d80...
                    &token=9fUyas64...
                    &timestamp=1234567
Run Code Online (Sandbox Code Playgroud)

对于最简单的呼叫,这似乎有点可怕.考虑到最终shared_secret将嵌入(至少)一个iOS应用程序的意愿,我认为它可以被提取出来,这甚至提供了一种超出虚假安全感的东西吗?

authentication rest

121
推荐指数
2
解决办法
16万
查看次数

使用PHP/MYSQL构建安全公共API

我目前正在为一个非常繁忙的互联网网站构建API.它是用PHP编写的PHP.现在这是我写的第一个API,允许人们远程访问他们的帐户.一旦API在线,开发人员就可以从中编写自己的工具.

现在我有API工作,但我不确定它是否完全安全.

一个可行的示例网址是: http://domain.com/api.php?api_option=list&api_user_name=USERNAME&api_user_password=PASSWORD

USERNAME:将是用户的实际用户名

PASSWORD:将是他们的实际密码的MD5编码字符串.

如果详细信息匹配,则返回结果,如果不匹配,则返回错误.

所有外部$_GET输入都得到了mysql_real_escape_string()治疗.

我想保持简单,但我不确定这种方式是否是一种安全的方式,可以使用直接连接到用户帐户数据的公共API.

非常感谢您的想法和建议.

php mysql api

14
推荐指数
3
解决办法
2万
查看次数

在PHP和MySQL中使用'JSON Web Token(即JWT)实现'基于令牌的身份验证'的工作示例?

我使用Slim框架开发了一些Web API.

我想对这些API实现"基于令牌的身份验证".由于这是我第一次使用"基于令牌的身份验证",所以对我来说一切都是新的.所以,我搜索了很多解决方案,并了解了'JSON Web Token(即JWT)'.

我访问了JWT的URL Git repo URL,但我无法理解如何使用PHP和MySQL将JWT实现到我的系统中.

我还在PHP和MySQL中搜索了使用'JSON Web Token(即JWT)'实现'基于令牌的身份验证'的工作示例.

如果有人可以提供完整的代码以及MySQL数据库表,与PHP的数据库连接,生成安全令牌,将令牌保存到相应的数据库表中,将安全令牌发送回调用PHP文件,在请求中发送安全令牌,使用存储在数据库中的安全令牌等来验证安全令牌,这对我来说真的非常有帮助.

如果可能,请以评论的形式提供整个代码,并提供正确的逐步说明.

php mysql authentication token jwt

12
推荐指数
0
解决办法
2万
查看次数

如何从android发送数据到mysql服务器?

我是android开发的新手.我正在使用Android Studio.我正在制作一个应用程序,其中有一个名称下拉列表.在选择任何名称时,ID该应用程序将显示该名称的相应名称.然后有一个按钮,它将搜索用户当前的GPS坐标并在应用程序上显示它们.我搜索了类似的问题并找到了一些链接(我会在最后发布)但我无法理解它们.以下是该应用的屏幕截图

Android应用截图

我在mysql中有两个表; users并且activity,如下所示

用户

mysql workbench截图列出字段'Id'和'Name'

活动

mysql workbench截图列出字段'Id','UserId','Latitude','Longitude'和'DateTime'

UserId是在活动表的外键即Idusers表将被插入到它.

我创建了以下脚本以将数据作为JSON返回:

<?php
    require_once ('config.php');

    $sql = "SELECT * FROM users";  
    $r = mysqli_query($con,$sql); 
    $result = array();

    while($row = mysqli_fetch_array($r)){
        array_push($result,array(
            'Id'=>$row['Id'],
            'Name'=>$row['Name']
        )); 
      }//end while

    echo json_encode(array('users'=>$result));

    mysqli_close($con);
?>
Run Code Online (Sandbox Code Playgroud)

在我的应用代码中,我创建了一个users

用户类

public class Users {

private String Id;
private String Name;

public String getId() {
    return Id;
}

public void setId(String id) {
    this.Id = id;
}

public String getName() …
Run Code Online (Sandbox Code Playgroud)

php mysql android json http-post

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

mysql ×3

php ×3

authentication ×2

android ×1

api ×1

http-post ×1

json ×1

jwt ×1

rest ×1

token ×1