2.4. 内容管理:文本格式。
Drupal 网站通常是为了发布到互联网上而建立的。而当你将网站上线后,它就会对全世界开放,包括垃圾信息发送者和爬虫程序——他们会尝试在你的网站上发布垃圾内容甚至恶意代码。Drupal 具备多层检测和文本过滤机制,可以识别并清除来自表单输入中的恶意代码(你可以了解更多关于 XSS 攻击的内容)。
让我们进入 配置(Configuration)→ 内容创作(Content authoring)→ 文本格式与编辑器(Text formats and editors) 页面:
/admin/config/content/formats
这里默认有四种文本格式:Full HTML(完整 HTML)、Basic HTML(基础 HTML)、Restricted HTML(受限 HTML)、Plain Text(纯文本)。它们从上到下依次执行:如果用户拥有对应权限,则应用相应格式;如果没有权限,则使用下一级过滤器。
过滤器越靠下,输出的文本越少,过滤越严格。我们可以将 Full HTML 放在最上方,让管理员默认使用它,因为该格式限制最少、过滤最宽松。
接下来,我们进入 Basic HTML 的设置页面,为匿名用户分配使用该格式的权限,同时允许他们使用可视化编辑器 CKEditor。
请注意,CKEditor 默认是禁用的,这是出于安全考虑。过时的可视化编辑器可能成为网站的安全漏洞。
由于你为匿名用户开放了可视化编辑器功能,也意味着潜在的攻击面扩大。
但无需担心,CKEditor 是 Drupal 核心自带的编辑器,会随 Drupal 一起更新,因此相对安全。
继续往下,我们可以创建图标分组(Icon groups),并将所需的工具图标拖放到分组中。例如,我创建了一个「Alignment」组,并添加了文本对齐的图标。
接下来,我们可以配置通过 CKEditor 上传文件的功能,但默认设置已经可以正常使用。
然后我们可以为文本格式设置过滤器。请特别关注「仅保留允许的 HTML 标签(Limit allowed HTML tags and correct faulty HTML)」过滤器——它是 Basic HTML 格式的核心过滤器,用于清除 JavaScript 代码,仅保留安全的 HTML 标签。其他过滤器可以根据需要启用或禁用。
启用的过滤器可以通过拖动调整执行顺序。务必确保「限制允许的 HTML 标签并修正错误 HTML」位于最上方,这样它可以在其他过滤器运行之前先清除所有潜在的 JavaScript 代码。
最后,我们可以设置在过滤后保留哪些 HTML 标签。默认情况下,允许的标签范围已经足够广泛,你可以保留默认值。但建议在链接标签中添加属性 rel="nofollow"
,以防止垃圾评论中的链接影响网站的 SEO 表现。