Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 4 additions & 7 deletions src/api/utils/sanitize.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ import DOMPurify, { type Config } from 'isomorphic-dompurify';
* 针对博客文章内容优化的白名单配置
*/
const SANITIZE_CONFIG: Config = {
// 允许所有 data-* 属性 (代码高亮、行号等功能需要)
ALLOW_DATA_ATTR: true,

// 允许的 HTML 标签 - 博客文章常用标签
ALLOWED_TAGS: [
// 文本结构
Expand Down Expand Up @@ -130,13 +133,7 @@ const SANITIZE_CONFIG: Config = {

// 时间属性
'datetime',

// 数据属性 (用于代码高亮等)
'data-*',

// 代码块语言标识
'data-language',
'data-line',
// 注: data-* 属性已通过 ALLOW_DATA_ATTR: true 全局允许
],

// 允许的 URI 协议
Expand Down
2 changes: 1 addition & 1 deletion src/layouts/base/BaseLayout.astro
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ const coverImageUrlStr = coverImageUrl
<meta name="referrer" content="strict-origin-when-cross-origin" />
<meta
http-equiv="Content-Security-Policy"
content="default-src 'self'; script-src 'self' 'unsafe-inline' https://www.googletagmanager.com https://www.google-analytics.com; img-src 'self' data: https:; style-src 'self' 'unsafe-inline'; font-src 'self' data:; connect-src 'self' https://www.google-analytics.com; frame-ancestors 'self';"
content="default-src 'self'; script-src 'self' 'unsafe-inline' 'wasm-unsafe-eval' https://www.googletagmanager.com https://www.google-analytics.com; img-src 'self' data: https:; style-src 'self' 'unsafe-inline'; font-src 'self' data:; connect-src 'self' https://www.google-analytics.com; frame-ancestors 'self';"
/>

{canonicalUrl && <link rel="canonical" href={canonicalUrl} />}
Expand Down