屏蔽swagger中的v2/api-docs和v3/api-docs防止恶意攻击

屏蔽swagger中的v2/api-docs和v3/api-docs防止恶意攻击

在java开发中,我们经常使用Swagger来生成API文档,但是这是在测试环境中,在生产环境中为了防止恶意攻击需要屏蔽文档页面的获取和json格式的文档。

Swagger的简单使用:
https://blog.csdn.net/weixin_45683778/article/details/136211224
https://blog.51cto.com/u_16213348/10765796

屏蔽方式

在配置文件中配置如下即可:

springfox:
  documentation:
    swagger-ui:
      enabled: false
    auto-startup: false
### 解决方案 当遇到 `Can&#39;t read from file https://petstore.swagger.io/v3/api-docs` 错误以及 `schemaValidationMessages` 提示时,通常是因为 Swagger UI 尝试访问的 API 文档 URL 不可用或路径不正确。 #### 修改默认 API 文档 URL 对于本地开发环境或其他自定义部署场景,应当调整 Swagger UI 配置以指向正确的 API 文档位置。具体操作是在 `swagger/index.html` 文件内更改默认请求的远程地址为本地服务端口下的资源路径[^1]: ```html <!-- 修改前 --> url: "https://petstore.swagger.io/v2/swagger.json" <!-- 修改后 --> url: "http://{ip}:{port}/{projectName}/api-docs" ``` 其中 `{ip}`、`{port}` `{projectName}` 应替换为实际的服务 IP 地址、监听端口号及项目名称。例如,如果应用运行于本机且监听 8080 端口,则应设置成 `"http://localhost:8080/myProject/api-docs"` 形式的字符串。 #### 使用静态 JSON 文件作为数据源 另一种方法是利用已有的 API 描述文件(如 swaggerTest.json),将其放置在 Web 可访问的位置,并让 Swagger UI 加载此静态文件而不是尝试在线获取动态生成的内容[^2]。这可以通过更新配置来实现: ```javascript // JavaScript 方式设定初始显示的文档链接 window.onload = function() { const ui = newSwaggerUIBundle({ url: "/path/to/swaggerTest.json", // 替换成真实路径 dom_id: &#39;#swagger-ui&#39;, deepLinking: true, presets: [ SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], layout: "StandaloneLayout" }) } ``` #### 检查网络连通性权限 除了以上措施外,还需确认目标服务器能够正常响应 HTTP 请求并返回有效的 OpenAPI 定义文档。确保防火墙规则允许外部访问必要的端口服务接口;另外要验证所使用的 URL 是否存在跨域资源共享 (CORS) 限制问题,必要时需适当放宽 CORS 设置以便前端顺利拉取后台提供的 API 数据[^4]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值