假设我有一个http 的 web api 服务,别人能不能知道我有哪些 api 接口(或说路由)?

比如我搭建了一个 www.x.com的 web服务,

/ 路由返回 私人web,因为这个是默认的路由,当然我也可以删除/路由

除了 /,以外,

然后其它的接口都是md5的形式,因为我觉得这样一般人猜不对的

比如/e10adc3949ba59abbe56e057f20f883e,返回一个资源列表(这是/123456的md5加密,假设其它还有很多这样的路由,总共100个

这些路由我不跟任何人说的。

这样,除了我,别人能不能知道我这个www.x.com网站上有100个路由?或者抓出来?

阅读 4.8k
5 个回答

补充一点,除了前面有人说的如果你是 APP 提供了服务会被抓包外。

  • 要想完全不能被别人猜解,那就把路径加长,且无规则,同时接受所有的请求,也就是无论请求的地址是什么都返回200,并且随机返回数据,这样可以扰乱机器人对网站的目录扫描。当然,这些都是是有成本的,其次 如果你的价值不够,别人也不值的这么多。

如果,使用该服务的终端(浏览器/移动端/其他)只有你在用,那么别人基本是扫不出来的;
但是如果终端是公开的,比如你是搞了个 App 给别人用,那么只需要对终端的网络请求进行抓包,照样能拿到接口地址。

1.自己用别人不会知道,除非对你的网络进行监听抓包才能知道
2.如果还嫌不安全可以增加签名过程,调用接口需要传递参数,验证通过之后再返回数据

从另外一个角度再补充一下吧. 如果是内部的应用需要用到这个功能不如加个vpn 直接内网访问来解决所有问题. 直接把非vpn端口全部关闭.如果没有其他应用需要从外部请求你完全可以通过这种方式. 即使app也可以这样来解决问题.

有点杞人忧天,扫肯定可以扫(只要你暴露在公网),但你的数据能有多大的价值让别人来扫?不值钱或者自己的玩具项目就不用管了,按时备份,其他不用管了

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