当前位置: 首页 > 后端技术 > PHP

Swagger系列三:结合Nginx访问控制和swagger常见问题解决

时间:2023-03-30 03:18:43 PHP

1.使用HTTP基本身份验证来限制访问。swagger生成的文档放在公网时,接口暴露,存在安全隐患。nginx的ngx_http_auth_basic_module模块为我们提供了方便。结合Apache模块htpasswd以增强安全性。需要安装Apache服务,这里不再赘述。htpasswd:htpasswd创建和更新存储用户名和密码的文本文件,用于HTTP用户的基本身份验证。创建密码文件和第一个用户。htpasswd使用-c标志(创建一个新文件,如果文件存在则不带-c),文件路径名作为第一个参数,用户名作为第二个参数来运行该实用程序,按Enter并在提示符下输入密码用户1。如:$sudohtpasswd-c/etc/apache2/.htpasswduser1查看结果:$cat/etc/apache2/.htpasswduser1:$APR1$/woC1jnP$KAh0SsVn5qeSMjTtn0E9Q0user2:$APR1$QdR8fNLT$vbCEEzDj7LyqCMyNpSoBh/限制访问基本认证与IP地址相结合。配置Nginx:location/docs{satisfyall;拒绝192.168.31.2;允许192.168.31.0/24;允许127.0.0.1;全部拒绝;auth_basic"管理员区域";重启Nginx:nginx-sreload,未输入账号密码访问或账号密码错误访问:2.常见问题右下角ERR错误点击查看{"schemaValidationMessages":[{"level":"error","message":"Can'treadfromfileswagger.json"}]}解决方法:使用swagger-ui时会调用远程验证,在index.html中添加validatorUrl:false即可关闭远程验证。