我目前正在制作一个向移动客户端提供API请求的服务器。我想以某种方式阻止 Web 浏览器或 cURL 等工具向我的 API 发出请求。这可能吗?如果是,最安全、最有效的方法是什么?
您的服务器无法真正阻止单个 curl 请求。但是,您的服务器可以拒绝处理它不想处理的请求。
为了更好地解释它,假设您的手机发送了HTTP请求。任何 curl 请求都可以模仿该确切的移动请求,使其看起来像来自您的手机(通过发送相同的标头、身份验证参数等)。您的服务器看不到 curl,它只看到 HTTP 请求。
您可以尝试使用看起来像来自curl的用户代理字符串来阻止请求,但这不会有太大用处;正如我提到的,curl可用于模仿任何HTTP请求。
来到你的评论
我有一个身份验证 API,一旦用户登录就会提供身份验证令牌,但您可以使用 cURL(甚至 Web 浏览器)登录
如果您有https服务器,则您的请求不会被劫持,因为用户只能读取自己的请求,而不能读取其他设备发送的请求。因此,您实际上不需要阻止 curl 请求。