安全.
本页列出了 DXPR Builder 自行保护的内容,以及由您决定的内容:谁可以编辑、访客输出是否经过文本格式过滤器、编辑人员可以上传哪些文件。
构建器输出与文本格式
构建器将页面以 HTML 保存在字段中,并按原样显示该 HTML。默认情况下,文本格式过滤器不在构建器字段上运行。因此,拥有 Edit with DXPR Builder 权限并可编辑页面的人可以在其中添加任意 HTML,包括 HTML 元素中的脚本。请只将该权限授予可信角色;Drupal 在权限页面上将其标记为受限权限。
Apply text format filters to frontend content(DXPR Studio > DXPR Builder > General Settings > Text Filters 下)为非编辑人员运行字段的文本格式。编辑人员仍看到原始内容。严格的格式也可能剥离构建器标记,因此请在开启状态下测试页面。
AI 输出有自己的过滤器。在 DXPR Studio > DXPR Builder > AI 下,AI Output Filtering 将生成内容的域名限制在您列出的 Allowed domains 内。
用户权限
DXPR Builder 定义了三个权限:
| 权限 | 标签 | 授予 |
|---|---|---|
edit with dxpr builder |
Edit with DXPR Builder | 在用户可编辑的内容上使用构建器;每个此类账户占用一个许可证 |
administer dxpr builder configuration |
Administer DXPR Builder configuration | General Settings、AI 设置、User Licenses、Content items 和 Migrations |
administer dxpr_builder_profile |
Administer dxpr builder profile | User Profiles |
该 Page Templates 和 User Templates 管理页面需要核心权限 Administer site configuration。
编辑器还需要对内容本身的更新权限,例如 Basic page: Edit any content。每次保存都会在服务器上重新检查。
AJAX 路由与 CSRF 保护
以下路由只接受带 CSRF 令牌的请求,且仅限拥有 Edit with DXPR Builder 权限、未被排除编辑的账户:
/dxpr_builder/ajax(保存、模板、区块和视图)/dxpr_builder/ajax/ai/chat(AI 文本助手)/dxpr_builder/ajax/ai/image(AI 图像生成)/dxpr_builder/ajax/ai/image/edit(AI 图像编辑)/dxpr_builder/ajax/file_upload(文件上传)
/dxpr_builder/user-settings 和 /dxpr_builder/entity-link-suggestions 同样需要令牌和权限。编辑器从 /dxpr_builder/csrf 获取新令牌,该地址只响应可编辑的账户。/dxpr_builder/media-library 需要 View media。无需手动配置。
用户档案
用户档案为每个角色塑造编辑器:编辑人员看到哪些 Elements、Blocks、Views、Page templates、Global user templates 和 Icon sets,以及获得哪些文本编辑器按钮。档案不是安全边界。保存路由接受有权限用户的任意 HTML,因此隐藏 HTML 元素拦不住决心钻空子的编辑人员。多个档案需要 DXPR Enterprise 套餐。
文件上传
上传路由 /dxpr_builder/ajax/file_upload:
- 只接受 GIF、JPEG、PNG、WebP、AVIF 和 SVG 图片,以及 WebM、Ogg、MP4 和 QuickTime 视频,经过 Drupal 文件上传验证。
- 文件大小限于 PHP 的上传上限。
- 将文件作为永久文件存放在默认文件目录的
dxpr_builder_images、dxpr_builder_videos或dxpr_builder_files中。
SVG 文件可能包含脚本,在直接打开文件时运行。这也是将编辑权限保留给可信角色的又一个原因。
在默认文件系统为私有的网站上,私有 dxpr_builder_images 和 dxpr_builder_videos 文件夹中的文件仍会提供给每位访客,因为构建器页面公开显示它们。请勿通过构建器上传机密文件。
接下来做什么?
让页面更快的性能调优,继续探索 DXPR Builder。