feat(core): sync framework security hardening and accessibility improvements

- add util.Go with panic recovery for background goroutines
- add util.EscapeLike and explicit ESCAPE clause for SQL LIKE queries
- add DummyCheckPassword and subtle.ConstantTimeCompare against timing attacks
- enforce session ID rotation upon login/oauth callback to prevent session fixation
- add sliding window login failure rate limiting and oauth state rate limiting
- fix redis client capture race in pubsub listeners and wait on stop channel
- adjust global --primary to oklch(51.1% 0.262 276.966) for WCAG AA contrast
- fix semantic heading levels and missing aria-labels across UI components
- document security, concurrency, and a11y standards in AGENTS.md
This commit is contained in:
ryan
2026-08-27 23:01:28 +08:00
parent b66cf3ae9c
commit ae3b792e16
63 changed files with 570 additions and 176 deletions
+8 -3
View File
@@ -10,7 +10,9 @@
"settings": "Settings",
"search": "Search",
"unknownError": "Something went wrong. Please try again.",
"loadFailed": "Load failed"
"loadFailed": "Load failed",
"previousPage": "Previous page",
"nextPage": "Next page"
},
"layout": {
"nav": {
@@ -94,7 +96,9 @@
"empty": {
"noData": "No data",
"noContent": "No records found"
}
},
"toggleSidebar": "Toggle sidebar",
"mainNavigation": "Main navigation"
},
"auth": {
"login": {
@@ -1243,7 +1247,8 @@
"noActiveUsersData": "No active user data",
"unknown": "Unknown",
"noNickname": "(no nickname)",
"requests": "requests"
"requests": "requests",
"refresh": "Refresh"
},
"appLogs": {
"loading": "Loading...",
+8 -3
View File
@@ -10,7 +10,9 @@
"settings": "设置",
"search": "搜索",
"unknownError": "发生错误,请重试",
"loadFailed": "加载失败"
"loadFailed": "加载失败",
"previousPage": "上一页",
"nextPage": "下一页"
},
"layout": {
"nav": {
@@ -94,7 +96,9 @@
"empty": {
"noData": "暂无数据",
"noContent": "当前没有任何记录"
}
},
"toggleSidebar": "切换侧边栏",
"mainNavigation": "主导航"
},
"auth": {
"login": {
@@ -1243,7 +1247,8 @@
"noActiveUsersData": "暂无活跃用户数据",
"unknown": "未知",
"noNickname": "(无昵称)",
"requests": "次请求"
"requests": "次请求",
"refresh": "刷新"
},
"appLogs": {
"loading": "加载中...",