如何限制API仅在浏览器中运行?

时间:2017-04-24 12:24:04

标签: javascript node.js express authentication mean-stack

我正在使用节点js并且我使用策略来限制api在浏览器中的准确性。为此我提出以下条件

{{1}}

我不确定我的过程是否正确。我正在搜索仅存在于浏览器的公共参数(header-parameter)。任何人都可以帮助我。谢谢。

2 个答案:

答案 0 :(得分:2)

这是不可能的。

您无法控制哪些类型的客户端向HTTP服务器发出HTTP请求。

您无法可靠地识别您收到的请求的客户类型。

任何自定义客户端都可以使用任何值发送(或不发送)upgrade-insecure-requests标头。同上邮差 - 令牌。同上用户代理。其他一切都是一样的。

限制它的唯一方法是在请求中要求某种秘密。如果您希望常规Web浏览器访问它,那么秘密将通过浏览器开发人员工具泄漏。

答案 1 :(得分:0)

我不认为没有身份验证/授权就可以真正阻止请求。但是,您可以使用HTTP标头的用户代理字段

http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html