将 API URL 限制为 Android 应用程序
Restrict API URL only to Android Application
我在服务器端用 C# 创建了一个 Android 应用程序。按照 this 教程,我正在使用 Json 网络服务。一切都运行良好,但唯一的问题是如果有人点击 www.mydomain.com/Handler.ashx?ANDROID,那么所有写在服务器端的方法都会作为文本文件和代码下载可以轻松阅读。
我想做的是,只有当我的 android 应用程序发出请求时,服务器才应该响应。如果某人 (hacker/cracker) 点击 url,那么他应该无法下载代码,应该被重定向到某个特定页面,说明禁止未经授权的访问。
有人可以帮我解决这个问题吗?如果这个问题不清楚,请告诉我。
您可以做的是从您的 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 发送请求时,请使用密钥发送。
我在服务器端用 C# 创建了一个 Android 应用程序。按照 this 教程,我正在使用 Json 网络服务。一切都运行良好,但唯一的问题是如果有人点击 www.mydomain.com/Handler.ashx?ANDROID,那么所有写在服务器端的方法都会作为文本文件和代码下载可以轻松阅读。
我想做的是,只有当我的 android 应用程序发出请求时,服务器才应该响应。如果某人 (hacker/cracker) 点击 url,那么他应该无法下载代码,应该被重定向到某个特定页面,说明禁止未经授权的访问。
有人可以帮我解决这个问题吗?如果这个问题不清楚,请告诉我。
您可以做的是从您的 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 发送请求时,请使用密钥发送。