当前位置: 首页 > article >正文

gte-base-zh WebUI安全加固:禁用CORS、关闭Swagger UI、限制Referer白名单

gte-base-zh WebUI安全加固禁用CORS、关闭Swagger UI、限制Referer白名单重要提示本文介绍的安全加固方案适用于生产环境部署可有效防止未授权访问和数据泄露风险。1. 为什么需要WebUI安全加固当你使用xinference部署gte-base-zh embedding模型并开放WebUI界面时默认配置可能存在安全风险。未经保护的Web界面可能面临未授权访问任何人都可以调用你的模型服务数据泄露敏感文本数据可能被恶意获取跨站请求伪造恶意网站可能利用你的模型服务接口信息暴露Swagger UI会暴露所有API细节通过本文的三个关键加固措施你可以显著提升模型服务的安全性同时保持正常的业务使用。2. 环境准备与现状分析2.1 当前部署情况根据提供的部署信息你的gte-base-zh模型通过以下方式运行模型位置/usr/local/bin/AI-ModelScope/gte-base-zhXinference启动命令xinference-local --host 0.0.0.0 --port 9997模型服务启动脚本/usr/local/bin/launch_model_server.py2.2 安全风险识别默认部署存在以下安全隐患CORS配置宽松允许任意来源的跨域请求Swagger UI暴露API文档界面可被任意访问无访问控制缺少Referer验证等基础防护3. 安全加固实施方案3.1 禁用CORS跨域资源共享CORS默认配置可能过于宽松建议在生产环境中严格限制。修改启动脚本(/usr/local/bin/launch_model_server.py)from flask import Flask from flask_cors import CORS app Flask(__name__) # 默认的不安全配置需要修改 # CORS(app) # 这会允许所有跨域请求 # 安全配置完全禁用CORS或严格限制 # 方案1完全禁用CORS # app.config[CORS_ENABLED] False # 方案2仅允许特定域名推荐 cors CORS(app, resources{ r/api/*: { origins: [https://your-domain.com, https://your-app.com] } }) # 或者使用更严格的配置 app.config[CORS_SUPPORTS_CREDENTIALS] False app.config[CORS_ALLOW_HEADERS] [Content-Type]验证方法# 测试CORS配置 curl -H Origin: http://malicious-site.com \ -H Access-Control-Request-Method: POST \ -H Access-Control-Request-Headers: X-Requested-With \ -X OPTIONS --verbose \ http://localhost:9997/api/embed正确配置后非法来源的请求应该被拒绝。3.2 关闭Swagger UI文档界面Swagger UI虽然方便调试但在生产环境中会暴露API细节建议关闭。修改方案from flask import Flask from flask_swagger_ui import get_swaggerui_blueprint app Flask(__name__) # 默认的不安全配置需要修改 # SWAGGER_URL /api/docs # API_URL /static/swagger.json # swaggerui_blueprint get_swaggerui_blueprint( # SWAGGER_URL, # API_URL, # config{app_name: GTE Model API} # ) # app.register_blueprint(swaggerui_blueprint, url_prefixSWAGGER_URL) # 安全配置完全禁用Swagger UI # 注释掉或删除所有Swagger相关代码 # 或者通过环境变量控制 import os if os.environ.get(ENVIRONMENT) ! production: # 仅在开发环境启用Swagger SWAGGER_URL /api/docs API_URL /static/swagger.json swaggerui_blueprint get_swaggerui_blueprint( SWAGGER_URL, API_URL, config{app_name: GTE Model API} ) app.register_blueprint(swaggerui_blueprint, url_prefixSWAGGER_URL)验证方法 访问http://your-server:9997/api/docs应该返回404错误或重定向到登录页面。3.3 实施Referer白名单限制Referer检查是防止CSRF攻击和未授权访问的有效手段。实现代码from flask import request, abort # 配置允许的Referer列表 ALLOWED_REFERERS [ https://your-domain.com, https://your-app.com, https://your-internal-service.com ] app.before_request def check_referer(): # 排除健康检查等必要接口 if request.path in [/health, /metrics, /]: return referer request.headers.get(Referer) origin request.headers.get(Origin) # 如果没有Referer或Origin头拒绝请求 if not referer and not origin: abort(403, descriptionReferer or Origin header required) # 检查Referer是否在白名单中 if referer: if not any(allowed in referer for allowed in ALLOWED_REFERERS): abort(403, descriptionReferer not allowed) # 检查Origin是否在白名单中 if origin: if origin not in ALLOWED_REFERERS and origin ! null: abort(403, descriptionOrigin not allowed)Nginx层面配置推荐额外添加server { listen 9997; server_name your-model-server.com; location / { # Referer检查 valid_referers none blocked your-domain.com your-app.com; if ($invalid_referer) { return 403; } proxy_pass http://localhost:9997; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }4. 完整的安全加固示例4.1 修改后的启动脚本示例#!/usr/bin/env python3 # /usr/local/bin/launch_model_server.py import os from flask import Flask, request, abort from flask_cors import CORS app Flask(__name__) # 安全配置 # 1. CORS严格限制 cors CORS(app, resources{ r/api/*: { origins: [https://your-domain.com, https://your-app.com], methods: [POST, GET], allow_headers: [Content-Type, Authorization] } }) # 2. Referer白名单 ALLOWED_REFERERS [https://your-domain.com, https://your-app.com] app.before_request def security_checks(): # 排除健康检查接口 if request.path in [/health, /metrics, /]: return # Referer检查 referer request.headers.get(Referer) origin request.headers.get(Origin) if not referer and not origin: abort(403, descriptionAccess denied: Referer or Origin header required) if referer and not any(allowed in referer for allowed in ALLOWED_REFERERS): abort(403, descriptionAccess denied: Invalid Referer) if origin and origin not in ALLOWED_REFERERS and origin ! null: abort(403, descriptionAccess denied: Invalid Origin) # 3. 生产环境禁用Swagger UI if os.environ.get(ENV, production) ! development: # 不注册Swagger蓝图 pass else: # 开发环境可启用Swagger from flask_swagger_ui import get_swaggerui_blueprint SWAGGER_URL /api/docs API_URL /static/swagger.json swaggerui_blueprint get_swaggerui_blueprint( SWAGGER_URL, API_URL, config{app_name: GTE Model API - Development} ) app.register_blueprint(swaggerui_blueprint, url_prefixSWAGGER_URL) # 你的模型路由和其他业务代码 app.route(/api/embed, methods[POST]) def embed_text(): # 模型推理逻辑 return {embedding: [...]} app.route(/health) def health_check(): return {status: healthy} if __name__ __main__: app.run(host0.0.0.0, port9997, debugFalse)4.2 部署和测试步骤备份原脚本cp /usr/local/bin/launch_model_server.py /usr/local/bin/launch_model_server.py.backup应用修改# 将新的安全配置写入启动脚本 vi /usr/local/bin/launch_model_server.py重启服务# 停止现有服务 pkill -f python.*launch_model_server # 启动新服务 nohup python /usr/local/bin/launch_model_server.py /root/workspace/model_server.log 21 验证安全配置# 测试非法访问 curl -H Referer: https://malicious-site.com http://localhost:9997/api/embed # 应该返回403错误 # 测试合法访问 curl -H Referer: https://your-domain.com http://localhost:9997/api/embed # 应该正常响应5. 额外安全建议5.1 网络层防护# 使用ipt限制端口访问 iptables -A INPUT -p tcp --dport 9997 -s 192.168.1.0/24 -j ACCEPT iptables -A INPUT -p tcp --dport 9997 -j DROP # 或者使用云服务商的安全组规则5.2 认证授权增强考虑添加API密钥认证API_KEYS { app1: your-secret-key-1, app2: your-secret-key-2 } app.before_request def api_key_auth(): if request.path.startswith(/api/): api_key request.headers.get(X-API-Key) if not api_key or api_key not in API_KEYS.values(): abort(401, descriptionInvalid API key)5.3 监控和日志import logging from datetime import datetime app.after_request def log_request(response): logger.info(f{datetime.now()} - {request.remote_addr} - f{request.method} {request.path} - f{response.status_code} - fReferer: {request.headers.get(Referer)}) return response6. 总结通过实施本文介绍的三重安全加固措施你的gte-base-zh模型WebUI将获得显著的安全提升CORS严格限制防止跨域攻击和数据泄露Swagger UI禁用避免API信息暴露Referer白名单有效控制访问来源这些措施可以在不影响正常业务使用的前提下大幅降低安全风险。建议根据实际业务需求调整白名单配置并定期审查安全设置。记得在生产环境部署前进行全面测试确保安全配置不会影响正常的业务访问。同时保持系统和依赖库的及时更新以获取最新的安全补丁。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

相关文章:

gte-base-zh WebUI安全加固:禁用CORS、关闭Swagger UI、限制Referer白名单

gte-base-zh WebUI安全加固:禁用CORS、关闭Swagger UI、限制Referer白名单 重要提示:本文介绍的安全加固方案适用于生产环境部署,可有效防止未授权访问和数据泄露风险。 1. 为什么需要WebUI安全加固 当你使用xinference部署gte-base-zh embe…...

NideShop物流配送系统:如何实现订单发货与快递跟踪的完美集成

NideShop物流配送系统:如何实现订单发货与快递跟踪的完美集成 【免费下载链接】nideshop NideShop 开源微信小程序商城服务端 API(Node.js ThinkJS) 项目地址: https://gitcode.com/gh_mirrors/ni/nideshop NideShop是一个基于Node.j…...

终极指南:Permify权限计算优化如何避免深度递归陷阱

终极指南:Permify权限计算优化如何避免深度递归陷阱 【免费下载链接】permify An open-source authorization as a service inspired by Google Zanzibar, designed to build and manage fine-grained and scalable authorization systems for any application. — …...

7个Live-Charts单元测试实战技巧:确保图表组件稳定运行的完整指南

7个Live-Charts单元测试实战技巧:确保图表组件稳定运行的完整指南 【免费下载链接】Live-Charts Simple, flexible, interactive & powerful charts, maps and gauges for .Net 项目地址: https://gitcode.com/gh_mirrors/li/Live-Charts Live-Charts是一…...

图灵奖得主杨立昆公开“手撕”Meta 内部环境:“LLM 吸光了房间里的空气”,物理世界才是 AGI 的终局

来源:AI 科技大本营(ID:rgznai100)编译:王启隆Sora 死后,生成式视频路线已到头。2026 年 3 月,在新德里的 AI Alliance Global Leadership Reception 上,Christopher Nguyen 邀请到杨…...

探索R语言中的数据处理:序列统计

在数据分析中,我们经常需要处理复杂的顺序数据,例如测试的时间序列。在本篇博客中,我们将探讨如何使用R语言来处理一个特定的问题:统计四种测试(Test 1到Test 4)在不同顺序下的执行频率。 问题描述 假设我们有一个研究数据框,其中包含四种测试的日期,这些测试可以以任…...

如何用PeerDB构建企业级数据管道:从配置到监控的完整教程

如何用PeerDB构建企业级数据管道:从配置到监控的完整教程 【免费下载链接】peerdb Fast, Simple and a cost effective tool to replicate data from Postgres to Data Warehouses, Queues and Storage 项目地址: https://gitcode.com/gh_mirrors/pe/peerdb …...

SwiftData中的级联删除关系

在开发iOS应用程序时,数据模型的设计和管理至关重要。SwiftData是Apple在WWDC 2023上推出的新框架,旨在简化数据模型的创建和操作。今天,我们来探讨一下如何在SwiftData中实现级联删除关系。 什么是级联删除? 级联删除是一种数据库关系模型中的操作规则,当一个主记录被删…...

Lux测试框架完整指南:如何编写高效的数据可视化测试用例

Lux测试框架完整指南:如何编写高效的数据可视化测试用例 【免费下载链接】lux Automatically visualize your pandas dataframe via a single print! 📊 💡 项目地址: https://gitcode.com/gh_mirrors/lux/lux Lux是一个强大的Python数…...

PyJWT与云原生应用集成的终极指南:如何构建安全的微服务架构

PyJWT与云原生应用集成的终极指南:如何构建安全的微服务架构 【免费下载链接】pyjwt JSON Web Token implementation in Python 项目地址: https://gitcode.com/gh_mirrors/py/pyjwt PyJWT(Python JSON Web Token)是一个功能强大且易于…...

**遗传算法在路径优化中的创新应用:从理论到Python实战**在智能优化领域,**遗传算法(Genetic A

遗传算法在路径优化中的创新应用:从理论到Python实战 在智能优化领域,遗传算法(Genetic Algorithm, GA) 凭借其强大的全局搜索能力和对复杂问题的适应性,成为解决组合优化问题的重要工具。本文将深入探讨如何使用 Pyth…...

如何构建现代化博客系统:从Markdown到动态页面的完整指南

如何构建现代化博客系统:从Markdown到动态页面的完整指南 【免费下载链接】skateshop An open source e-commerce skateshop build with everything new in Next.js. 项目地址: https://gitcode.com/gh_mirrors/sk/skateshop 在当今数字化时代,拥…...

终极指南:LLMLingua JSON数据压缩与字段级定制策略

终极指南:LLMLingua JSON数据压缩与字段级定制策略 【免费下载链接】LLMLingua [EMNLP23, ACL24] To speed up LLMs inference and enhance LLMs perceive of key information, compress the prompt and KV-Cache, which achieves up to 20x compression with minim…...

终极指南:深入理解Wing语言Preflight和Inflight执行阶段

终极指南:深入理解Wing语言Preflight和Inflight执行阶段 【免费下载链接】wing A programming language for the cloud ☁️ A unified programming model, combining infrastructure and runtime code into one language ⚡ 项目地址: https://gitcode.com/gh_mi…...

万字长文带你深入Redis底层数据结构

在技术领域,我们常常被那些闪耀的、可见的成果所吸引。今天,这个焦点无疑是大语言模型技术。它们的流畅对话、惊人的创造力,让我们得以一窥未来的轮廓。然而,作为在企业一线构建、部署和维护复杂系统的实践者,我们深知…...

终极指南:PDFMiner XML输出如何高效提取结构化数据

终极指南:PDFMiner XML输出如何高效提取结构化数据 【免费下载链接】pdfminer Python PDF Parser (Not actively maintained). Check out pdfminer.six. 项目地址: https://gitcode.com/gh_mirrors/pd/pdfminer PDFMiner是一个强大的Python PDF解析库&#x…...

Redis中有事务吗?有何不同?

在技术领域,我们常常被那些闪耀的、可见的成果所吸引。今天,这个焦点无疑是大语言模型技术。它们的流畅对话、惊人的创造力,让我们得以一窥未来的轮廓。然而,作为在企业一线构建、部署和维护复杂系统的实践者,我们深知…...

ThinkJS路由系统终极指南:构建RESTful API的10个最佳实践

ThinkJS路由系统终极指南:构建RESTful API的10个最佳实践 【免费下载链接】thinkjs Use full ES2015 features to develop Node.js applications, Support TypeScript. 项目地址: https://gitcode.com/gh_mirrors/thi/thinkjs ThinkJS路由系统是构建现代Node…...

终极指南:At.js如何让你的应用拥有GitHub级别的智能补全功能

终极指南:At.js如何让你的应用拥有GitHub级别的智能补全功能 【免费下载链接】At.js Add Github like mentions autocomplete to your application. 项目地址: https://gitcode.com/gh_mirrors/at/At.js At.js是一款强大的智能补全库,能够为你的W…...

Socket.IO-Client-Swift终极安全指南:TLS/SSL配置和证书认证详解

Socket.IO-Client-Swift终极安全指南:TLS/SSL配置和证书认证详解 【免费下载链接】socket.io-client-swift 项目地址: https://gitcode.com/gh_mirrors/so/socket.io-client-swift Socket.IO-Client-Swift是一款功能强大的Swift客户端库,用于与S…...

终极指南:gradle-retrolambda在大型项目中的性能优化与稳定性保障策略

终极指南:gradle-retrolambda在大型项目中的性能优化与稳定性保障策略 【免费下载链接】gradle-retrolambda evant/gradle-retrolambda: gradle-retrolambda 插件允许开发者在 Android 项目中使用 Java 8 的 Lambda 表达式和其他现代语言特性,并通过 Ret…...

前端自动化部署终极指南:从CI/CD到容器化的完整流程

前端自动化部署终极指南:从CI/CD到容器化的完整流程 【免费下载链接】all-of-frontend 你想知道的前端内容都在这 项目地址: https://gitcode.com/gh_mirrors/al/all-of-frontend GitHub 加速计划(all-of-frontend)是一个全面的前端学…...

如何快速集成Socket.IO-Client-Swift与SwiftUI:构建现代化实时iOS应用的完整指南

如何快速集成Socket.IO-Client-Swift与SwiftUI:构建现代化实时iOS应用的完整指南 【免费下载链接】socket.io-client-swift 项目地址: https://gitcode.com/gh_mirrors/so/socket.io-client-swift Socket.IO-Client-Swift是一款功能强大的iOS/OS X实时通信库…...

学术利器爱毕业aibye推荐六款顶尖平台,智能改写与写作功能双管齐下,优化研究流程

工具名称 核心功能 特色优势 Aibiye 论文生成降AI率 全学科覆盖、仿写优化、自动图表生成 Aicheck AI检测文献综述辅助 精准查新、3分钟高效成文 GPT学术版 润色/翻译/代码解释 多模型协同、PDF深度解析 摆平论文 大纲生成降重改写 三步出稿、本硕博通用 QuillB…...

学术研究必备:8款AI论文写作工具,爱毕业aibiye高效实用

人工智能技术在学术研究领域的深度整合为论文撰写流程带来了革命性变革,通过8款核心智能工具的协同应用——包括文献智能分析系统、自动化内容生成引擎以及文本精准优化平台——研究者能够实现从数据挖掘到学术表达的全程智能化,显著提升文献处理效率与学…...

pinyinjs自定义字典扩展指南:打造专属拼音转换系统

pinyinjs自定义字典扩展指南:打造专属拼音转换系统 【免费下载链接】pinyinjs 一个实现汉字与拼音互转的小巧web工具库,演示地址: 项目地址: https://gitcode.com/gh_mirrors/pi/pinyinjs pinyinjs是一个实现汉字与拼音互转的小巧web工…...

OpenClaw安全实践:gemma-3-12b-it本地化保障敏感数据边界

OpenClaw安全实践:gemma-3-12b-it本地化保障敏感数据边界 1. 为什么需要本地化部署? 去年处理季度财报时,我犯过一个至今心有余悸的错误。当时用某公有云API自动分析Excel中的财务数据,结果在调试时不小心把包含客户银行账号的测…...

Legcord:革命性Discord轻量级客户端,10大特性全面解析

Legcord:革命性Discord轻量级客户端,10大特性全面解析 【免费下载链接】ArmCord Legcord is a custom client designed to enhance your Discord experience while keeping everything lightweight. 项目地址: https://gitcode.com/gh_mirrors/ar/ArmC…...

一站式数据健康解决方案:docta项目架构与核心组件深度剖析

一站式数据健康解决方案:docta项目架构与核心组件深度剖析 【免费下载链接】docta A Doctor for your data 项目地址: https://gitcode.com/gh_mirrors/do/docta docta作为一款强大的数据健康诊断工具,能够帮助用户轻松检测和修复数据集中的标签错…...

Thymeleaf项目部署指南:从开发到生产环境的完整流程

Thymeleaf项目部署指南:从开发到生产环境的完整流程 【免费下载链接】thymeleaf Thymeleaf is a modern server-side Java template engine for both web and standalone environments. 项目地址: https://gitcode.com/gh_mirrors/th/thymeleaf Thymeleaf是一…...