Ios 如何访问我的移动应用程序api?

Ios 如何访问我的移动应用程序api?,ios,laravel,api,security,passport.js,Ios,Laravel,Api,Security,Passport.js,我必须开发移动应用程序(IOS swift)的后端。我开始用laravel创建api。 但我关心的是对api的访问:我应该如何授予对api的访问权?我听说了一些关于Oauth密钥和passport的事情 对于我的应用程序,我想: -user can create an account (i guess it's with JWT) -user can navigate in my app and start to use it after they create their account.

我必须开发移动应用程序(IOS swift)的后端。我开始用laravel创建api。 但我关心的是对api的访问:我应该如何授予对api的访问权?我听说了一些关于Oauth密钥和passport的事情

对于我的应用程序,我想:

-user can create an account (i guess it's with JWT)
-user can navigate in my app and start to use it after they create their account.
我不知道为私人用途创建api的基本过程(只有我的应用程序会使用它),我应该实现什么安全功能,以及为我的应用程序创建帐户的工作方式。Thx:)

私人API 我不知道为私人用途创建api的基本过程(只有我的应用程序会使用它)

让我告诉你一个残酷的事实

无论API是否没有可公开访问的文档,或者是否受到任何类型的秘密或身份验证机制的保护,从internet访问的API不再是私有的

所以你可以让它很难找到和访问,但要真正将它锁定到你的移动应用程序中,你将很难做到这一点

谁和什么正在访问API服务器 是移动应用程序的用户,您可以通过多种方式进行身份验证、授权和识别,比如使用OpenID或OAUTH2流

现在您需要一种方法来识别调用API服务器的内容,这里的事情比大多数开发人员想象的要复杂得多。向API服务器发出请求的东西是什么,它真的是您的正版移动应用程序还是机器人、自动脚本或攻击者使用Postman之类的工具在API服务器周围手动戳戳

为了识别什么开发者倾向于使用API密钥,通常他们会在移动应用程序的代码中硬编码,有些人会在运行时在移动应用程序中进行额外的计算,从而成为动态秘密,与前一种方法相反,后者是嵌入在代码中的静态秘密

反向工程一个移动应用程序二进制是很容易的 事实上,客户端运行的任何东西都可以进行反向工程 很容易被他控制的设备上的攻击者攻击。他将使用自省框架(如或)在运行时拦截移动应用程序的运行代码,或使用代理工具(如)监视移动应用程序与API服务器之间的通信。通常情况下,他们对移动应用程序进行反向工程的第一步是使用对移动应用程序的二进制文件进行反向工程,以提取所有静态机密并识别攻击向量

Mobile Security Framework是一个自动化的多功能移动应用程序(Android/iOS/Windows)笔式测试框架,能够执行静态分析、动态分析、恶意软件分析和web API测试

将您自己的脚本注入黑盒进程。钩住任何函数,监视加密API或跟踪私有应用程序代码,无需源代码。编辑,点击保存,并立即查看结果。所有这些都没有编译步骤或程序重新启动

Xposed是一个模块框架,可以在不接触任何apk的情况下更改系统和应用程序的行为。这很好,因为这意味着模块可以在不做任何更改的情况下为不同版本甚至ROM工作(只要原始代码没有太多更改)。它也很容易撤销

为渗透测试人员和软件开发人员提供的一种交互式TLS,能够拦截HTTP代理

那么现在呢。。。我是否注定无法保护我的API服务器不被滥用???没有安静,所以。。。希望依然存在

可能的解决办法 因此,任何在客户端运行并且需要一些秘密才能访问API的东西都可能以不同的方式被滥用,并且您可以了解更多关于移动API安全技术的文章。本文将教您如何使用API密钥、用户访问令牌、HMAC和TLS固定来保护API,以及如何绕过它们

但我关心的是对api的访问:我应该如何授予对api的访问权?我听说了一些关于Oauth密钥和passport的事情

对于我的应用程序,我想:

-用户可以创建一个帐户(我想是用JWT) -用户可以在我的应用中导航,并在创建帐户后开始使用它

…以及如何为我的应用创建帐户

Laravel Passport是一个OAUTH2服务器,因此是一个用于用户创建和识别的良好解决方案,从而解决了谁在使用您的移动应用程序和API服务器的问题

我应该实现什么样的安全性

要解决什么是访问您的移动应用程序的问题,您需要使用关于移动API安全技术的系列文章中提到的一个或所有解决方案,我在上面提到了这些解决方案,并承认它们只会使未经授权访问您的API服务器更难绕过,但并非不可能

通过使用移动应用程序认证解决方案,可以使用更好的解决方案,该解决方案将使API服务器知道仅接收来自正版移动应用程序的请求

移动应用认证 使用移动应用程序认证解决方案,使API服务器能够知道发送请求的内容,从而使其仅响应来自正版移动应用程序的请求

移动应用认证服务的作用是通过在后台运行SDK来保证您的移动应用在运行时未被篡改或未在根设备中运行,SDK将与云中运行的服务进行通信,以认证移动应用和设备运行的完整性

在成功认证移动应用完整性后,将发布一个短时间有效的JWT令牌,并使用一个只有API服务器和云中的移动应用认证服务知道的秘密进行签名。在移动应用程序认证失败的情况下,JWT令牌使用API服务器不知道的秘密进行签名

现在,应用程序必须与每个AP一起发送