仅将 API URL 限制为 Android 应用程序

Posted

技术标签:

【中文标题】仅将 API URL 限制为 Android 应用程序【英文标题】:Restrict API URL only to Android Application 【发布时间】:2016-06-02 17:37:02 【问题描述】:

我在服务器端使用 C# 创建了一个 android 应用程序。遵循this 教程,我正在使用 Json Web 服务。一切都运行良好,但唯一的问题是如果有人点击 www.mydomain.com/Handler.ashx?ANDROID,那么所有在服务器端编写的方法都会下载为文本文件,并且可以轻松阅读代码。

我想要做的是,只有当我的 android 应用程序发出请求时,服务器才应该响应。如果有人(黑客/破解者)点击了该网址,那么他应该无法下载代码,并且应该被重定向到某个特定页面,说明禁止未经授权的访问。

有人可以帮我解决这个问题吗?如果这个问题不清楚,请告诉我。

【问题讨论】:

也许可以保护您的 api:***.com/questions/4817643/… 【参考方案1】:

您可以做的是从您的 android 应用程序中传递一个密钥以进行检查。

我不懂 C#,但在 php 中可能是这样的 -

在您的 C# 文件中,靠近文件顶部的某个位置,检查使用 post 方法发送的键值。如果没有传递密钥或传递错误密钥,则重定向到其他页面。

$required_key = "Udsd728392jsakk22";

if(($_POST['key'] == null) || ($_POST['key'] != $required_key))

//redirect to some other page
header("Location: www.myexampledomain.com/error.php");


从您的 android 应用程序中,当您向 URL 发送请求时,请使用密钥发送。

【讨论】:

以上是关于仅将 API URL 限制为 Android 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Echo Nest API:仅将曲目限制为一个桶

NSExtension - 分享 - 仅将类型限制为视频或图片

我们可以仅将 react-native-firebase 用于 android 和 IOS 其他由 react-native 提供的 api 吗?

如何仅将一些选定的 Json 数组和 Json 对象从 Url 解析到 android 设备

在 android 中获取意外的响应代码 403,同时在谷歌云控制台中将 API 密钥限制为 Android 应用程序

如何仅将整个应用程序设置为纵向模式?