使用 javascript 时如何保护本地 API URL
How to secure a local API URL, when using javascript
我正在寻找最好的方法来保护我的应用程序登录 api 免受试图劫持它的第三方的侵害。我正在使用 Apigility、ZF2、Jquery.
我有一个游戏服务器(服务器G)和一个云服务器(服务器C)。
当服务器 C - 保存用户名和密码时,用户通过服务器 G 注册和登录。
服务器 C 和 G 都有自己的 API 使用 ApiGility。
当用户登录到服务器 G 时,jquery 应用程序调用自己的 API,后者又使用 Oauth2 联系服务器 C 以验证输入的凭据。这样,我网络中的每个游戏都有一个到我的云的 Bearer 令牌连接,并且每个游戏都处理自己与其客户端(移动/浏览器/桌面等)的连接。保持清洁。
虽然服务器 G 到 C 是安全的,但我如何确保 javascript 对其自身 API 的调用安全?
javascript 公开了本地应用程序 api 调用,这实际上意味着任何人都可以抓住 url 并使用它:)
var url ='http://server-g.example.com/api/login/' + email + '/' + password;
$.ajax({
type: 'GET',
async: true,
url: url,
dataType: "json",
success: function(responseObject){
if (responseObject.status)
{
//Do stuff
} else {
//Do other stuff
}
}
});
我一直在考虑使用隐式授权,但是,我不确定这将如何与我自己的 api 一起使用?
标准解是什么?
您应该永远不要 像那样在url 中发送密码和电子邮件。
我想知道您使用 Apigility
中的哪些文档来设置此身份验证。
您应该在 POST
请求中发送用户名和密码,并使用正确设置的 https
连接。发送的数据将使用证书加密,这样可以防止数据在被拦截时被读取。
阅读有关如何在 Apigility here 中使用 OAuth 的更多信息,尤其是在:
Public 客户
示例显示:
POST /oauth HTTP/1.1
Accept: application/json
Content-Type: application/json
{
"grant_type": "password",
"username": "testuser",
"password": "testpass",
"client_id": "testclient2"
}
我正在寻找最好的方法来保护我的应用程序登录 api 免受试图劫持它的第三方的侵害。我正在使用 Apigility、ZF2、Jquery.
我有一个游戏服务器(服务器G)和一个云服务器(服务器C)。
当服务器 C - 保存用户名和密码时,用户通过服务器 G 注册和登录。
服务器 C 和 G 都有自己的 API 使用 ApiGility。
当用户登录到服务器 G 时,jquery 应用程序调用自己的 API,后者又使用 Oauth2 联系服务器 C 以验证输入的凭据。这样,我网络中的每个游戏都有一个到我的云的 Bearer 令牌连接,并且每个游戏都处理自己与其客户端(移动/浏览器/桌面等)的连接。保持清洁。
虽然服务器 G 到 C 是安全的,但我如何确保 javascript 对其自身 API 的调用安全?
javascript 公开了本地应用程序 api 调用,这实际上意味着任何人都可以抓住 url 并使用它:)
var url ='http://server-g.example.com/api/login/' + email + '/' + password;
$.ajax({
type: 'GET',
async: true,
url: url,
dataType: "json",
success: function(responseObject){
if (responseObject.status)
{
//Do stuff
} else {
//Do other stuff
}
}
});
我一直在考虑使用隐式授权,但是,我不确定这将如何与我自己的 api 一起使用?
标准解是什么?
您应该永远不要 像那样在url 中发送密码和电子邮件。
我想知道您使用 Apigility
中的哪些文档来设置此身份验证。
您应该在 POST
请求中发送用户名和密码,并使用正确设置的 https
连接。发送的数据将使用证书加密,这样可以防止数据在被拦截时被读取。
阅读有关如何在 Apigility here 中使用 OAuth 的更多信息,尤其是在:
Public 客户
示例显示:
POST /oauth HTTP/1.1
Accept: application/json
Content-Type: application/json
{
"grant_type": "password",
"username": "testuser",
"password": "testpass",
"client_id": "testclient2"
}