nginx是否可以拦截程序请求第三方api 并且返回json

nginx是否可以拦截程序请求第三方api 并且返回json

比如
php curl 请求一个第三方接口,不通过程序代码去拦截,想通过nginx或php-fpm或别的拦截这个域名请求并且返回json

阅读 5.4k
3 个回答

以api xx.xxx.com/xxx/aaa/api 为例:

hosts将域名指向本地
127.0.0.1 xx.xxx.com

nginx构造下路径

location ~ ^/xxx/aaa/api {
    default_type application/json;
    return 200 '{"status":"success","result":"nginx json"}';
}

这种方法如楼上所说,叫中间人攻击(在真实场景中更复杂,需要用到伪基站)。

很多软件的破解方法也都是用这种方式。

不改代码,拦截请求,你要的是中间人。

mitmproxy 或者 charles 都行吧。

那你必须是让访问第三方api接口的请求通过nginx,比如你的访问第三方的接口是https://site.com/redirect?url...,url后面是跟着你的访问第三方的接口,由后端接受,统一转发,如果你的程序是这样设计的就没问题,这样就没问题,但是如果不是通过nginx,而是直接由客户端发送,那就不行了,而且一般不会把这块逻辑放在nginx上,一般是放在程序上,更新迁移都比较好管理.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题