如何通过点击超链接来运行json API命令?



我是API和json的新手,所以这可能是基本的。但在谷歌上找不到解决办法。

我想通过点击电子邮件中的超链接通过API更改电子商店订单状态。我激活了一个API,并设法通过以下命令更改了Postman的订单状态:

PUT {url}/api/v2/orders HTTP/1.1
Content-Type: application/json
Authorization: Basic {abcdefgh}
{
"orders": [
{
"order_number": "00001",
"status_id": "16",
}
]
}

是否有一种方法,如何运行这个命令,只需点击一个超链接?既然授权是硬编码的,我应该担心安全问题吗?

干杯!

出于安全原因,电子邮件客户端不支持执行脚本或除GET请求以外的任何操作。因为这需要使用javascript/jquery来构建有效负载,并使用该有效负载调用API。

您需要将客户端带到一个安全页面登录并管理他们的订单。

这个超链接可能会把他们带到登录页面或注册页面。

令牌授权可以使用电子邮件作为验证,将用户带到页面查看他们的订单。但是,同样,你也不能确定是否有授权的人打开了电子邮件。

关于硬编码任何类型的授权,这是一个很大的不。

由于在电子邮件中单击超链接与在浏览器栏中键入地址相同,因此无法通过它发出POST请求。一种方法是生成一次性使用的令牌,并将其放在url中。当用户单击kyperlink时,对服务器的GET请求将包含可用于验证的令牌。

是否有一种方法可以通过单击超链接来运行此命令?

一般来说没有。单击电子邮件中的链接会发出GET请求,该请求不能包含正文。也就是说:您的"orders"JSON将不包括在内。它也不知道包括Authorization头。

据我所知,没有常见的电子邮件客户端允许您发出PUTPOST请求。

所以:你能在URL中编码请求,并使用GET请求代替吗?当然可以。不要这样做

这有几个原因。最重要的是你提到的:

既然授权是硬编码的,我应该关心安全性吗?

硬编码授权通常是一个坏主意,特别是在电子邮件中:(1)你不能保证电子邮件是加密的,这会将凭证暴露给任何可以捕获消息的人;如果你把这封邮件转发给我,我现在就有你的凭据了。

此外,如果您在URL中包含授权,那么它现在就在用户的浏览器历史记录中,并且如果他们与任何人共享该链接("嘿,看看这个回形针的交易!"),那么:与上述相同。

最新更新