feat: H5非企微UA拦截页 + 旧MFA端点标记废弃 + 响应契约审计通过
- H5 index.html 新增内联UA检测脚本,非企微环境显示拦截页 - CSP 添加 unsafe-inline 以支持拦截脚本 - service_routes.py 标记为 DEPRECATED(实际路由由 router.py 统一注册) - 响应契约审计:61个端点59个使用 success_response(),2个OAuth例外设计如此
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
# =============================================================================
|
||||
# 企微IT智能服务台 — 服务路由定义
|
||||
# DEPRECATED · 企微IT智能服务台 — 服务路由定义
|
||||
# =============================================================================
|
||||
# 说明:根据 SERVICE_NAME 环境变量定义各服务需要加载的路由
|
||||
# 支持 5 种服务:core, conversation, agent, ai, admin
|
||||
# ⚠️ 此文件已废弃(2026-07-08),实际路由由 router.py 统一注册。
|
||||
# 旧 MFA 路由已被 /auth/otp-* 替代。
|
||||
# 仅保留用于 test_service_routes.py 测试参考,生产环境不使用。
|
||||
# 不设置 SERVICE_NAME 时加载全部路由(向后兼容)
|
||||
# =============================================================================
|
||||
|
||||
|
||||
+12
-1
@@ -5,7 +5,7 @@
|
||||
<!-- 移动端视口设置(适配企微 WebView) -->
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
||||
<!-- CSP 安全策略 -->
|
||||
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'unsafe-eval' https://res.wx.qq.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: https: http:; connect-src 'self' https://qyapi.weixin.qq.com wss://* ws://localhost ws://127.0.0.1;" />
|
||||
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' 'unsafe-eval' 'unsafe-inline' https://res.wx.qq.com; style-src 'self' 'unsafe-inline'; img-src 'self' data: blob: https: http:; connect-src 'self' https://qyapi.weixin.qq.com wss://* ws://localhost ws://127.0.0.1;" />
|
||||
<!-- 页面标题 -->
|
||||
<title>智能IT支持服务台</title>
|
||||
<!-- 首屏骨架屏样式 v0.5.2 强化版 -->
|
||||
@@ -43,6 +43,17 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<!-- 非企微环境拦截 -->
|
||||
<script>
|
||||
(function(){
|
||||
var _ok = /^(localhost|127\.0\.0\.1)(:\d+)?$/.test(location.hostname) || navigator.userAgent.toLowerCase().indexOf('wxwork') > -1
|
||||
if (!_ok) {
|
||||
document.open()
|
||||
document.write('<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>仅限企业微信访问</title><style>*{margin:0;padding:0;box-sizing:border-box}body{background:#f7f8fa;display:flex;align-items:center;justify-content:center;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,sans-serif;text-align:center;padding:40px}.icon{font-size:60px;margin-bottom:24px}.title{font-size:20px;font-weight:600;color:#323233;margin-bottom:12px}.desc{font-size:14px;color:#969799;line-height:1.8}</style></head><body><div><div class="icon">🔒</div><div class="title">仅限企业微信访问</div><div class="desc">请在<strong>企业微信工作台</strong>中打开<br>「IT支持服务」访问此页面</div></div></body></html>')
|
||||
document.close()
|
||||
}
|
||||
})()
|
||||
</script>
|
||||
<!-- Vue 应用挂载点 -->
|
||||
<div id="app"></div>
|
||||
<!-- 首屏骨架屏(JS 加载期间显示,挂载后自动隐藏) v0.5.2 -->
|
||||
|
||||
Reference in New Issue
Block a user