如何保护移动应用程序和服务器之间的REST API
我的项目包括一个web应用程序、一个移动应用程序和一个RESTAPI模块 该移动应用程序由安卓版的Ionic 3制作,并使用一个REST API,该API位于带有https的服务器上的example.com/API.php地址。API可以访问MySQL数据库 对于访问API的用户,我必须创建登录/访问API函数/注销,因为他们已经在web应用程序中创建了帐户 主要关注点是实现安全登录。也就是说,如果有人试图在未经授权的情况下访问我的API(知道地址、函数名或使用的参数名)以接收错误消息。为了访问API,您必须登录并有权访问某个部分(我有多个访问级别)。 但是,如何检测访问我的RESTAPI的用户是否已登录并具有适当的权限 该计划:如何保护移动应用程序和服务器之间的REST API,rest,api,ionic3,Rest,Api,Ionic3,我的项目包括一个web应用程序、一个移动应用程序和一个RESTAPI模块 该移动应用程序由安卓版的Ionic 3制作,并使用一个REST API,该API位于带有https的服务器上的example.com/API.php地址。API可以访问MySQL数据库 对于访问API的用户,我必须创建登录/访问API函数/注销,因为他们已经在web应用程序中创建了帐户 主要关注点是实现安全登录。也就是说,如果有人试图在未经授权的情况下访问我的API(知道地址、函数名或使用的参数名)以接收错误消息。为了访问
- 对于我向RESTAPI发出的每个请求,我是否也应该从本地存储发送令牌,并在服务器端进行验证李>
- 如何在服务器上执行验证?我是否将令牌存储在设备和服务器上,并对每个请求进行比较
非常感谢 有多种方法,全靠你自己。因此,我分享我通常使用的方法,但并不声称这是最安全的方法 我们使用
加密
,解密
和私钥
。例如:
注册用户Web服务
我们有4个参数1。用户名2。名字3。电邮4。密码。使用我的注册web服务
我们将使用带有私钥的数据concat创建SHA256哈希。然后,我们将把散列
密钥传递给服务器,在服务器端,我们将使用相同的方法生成散列密钥,并对两者进行比较
例如,带有私钥的字符串=UsernameEmailPasswordPrivateKey
字符串的sha256=7814b2d22af647308884acff0be4c675b7f72ba000cf1e8390520100cc930e74
您可以拥有数据字符串的任何序列,并且相同的方法将用于您的服务器。始终在服务器上使用SSL证书
,以提高安全性 有很多方法可以做到这一点,包括注册用户、使用令牌等。在堆栈溢出时,您应该显示您尝试过的内容和不起作用的内容。有关如何发布问题的建议,请参阅。像这样的问题往往被认为是广泛的或基于意见的,因为有很多方法可以做你正在尝试的事情。我在过去使用过令牌方法,即登录,为所有REST请求提供令牌,服务器验证令牌是否仍然有效,如果是,则执行请求。