手册:$wgRawHtml
Outdated translations are marked like this.
HTML: $wgRawHtml | |
---|---|
允许未经检查的原始HTML放在<html>...</html> 里。 |
|
引进版本: | 1.3.4 |
移除版本: | 仍在使用 |
允许的值: | (布尔值) |
默认值: | false |
其他设置: 按首字母排序 | 按功能排序 |
详情
向 MediaWiki 路径中的 LocalSettings.php 文件加入 $wgRawHtml = true;
,wiki 就会允许插入未经检查的原始 HTML。
但是,您必须在<html>...</html>
标记中嵌入html,这样MediaWiki才能区分它。
这个选项不会影响
<html>...</html>
标签之外的wiki代码如何被处理。MediaWiki版本: | ≥ 1.29 |
自MediaWiki 1.29起,原始HTML标签在8号命名空间(MediaWiki)不再起作用:phabricator:T156184。
启用原始HTML是必要的吗?
有些HTML标签在wikitext中是允许的,即便有$wgRawHtml = false
。
参见m:帮助:Wikitext中的HTML。
Wikimedia网站上能看到的绝大多数花哨排版都是利用这些有限的标签实现的(例如带CSS的表格)。
如果你能在限制下凑合着用(保持$wgRawHtml = false
),你的wiki会更安全。
另外注意这些“有限的”wiki语法实际上是对wiki的一种刻意设计的特性。 它是个小型、简化的标记语法,非技术型用户能轻易理解,在差异查看中能轻松可视化,并且能劝阻样式方面的小修小补,以让用户更注重编写有用/有意思的文本。
相关扩展
有许多扩展能在提升安全状况的同时允许更多的HTML灵活度。
有些扩展需要设置$wgRawHtml = true
以协同使用,而其它的提供了一种替代方法。
Extension | Status | Description |
---|---|---|
Extension:HTMLets | unmaintained | 允许$wgRawHtml = false; 中预定义的HTML片段
|
Extension:HTML Tags | stable | 允许从wiki设置中定义的标签和属性中添加一系列HTML |
Extension:Secure HTML | unmaintained | 为html部分添加“密钥”保护 |
Extension:SaferHTMLTag | stable, has known security vulnerability | 防止未经授权的用户和组编辑包含<html> 标签的页面
|
Extension:HTMLPurifier | beta | 允许用户使用HTML Purifier对其进行净化来输入原始HTML |
Extension:微件 | stable | 允许使用可选参数定义基于HTML和JavaScript的“小部件” |
Extension:HTMLTemplates | experimental | 像普通模板一样创建新的HTMLTemplate命名空间,但以html编写的模板除外。参数以上下文相关方式自动转义 |
在你的wiki文章中使用自定义HTML的另一种方法是开发你自己的标签扩展。
不要试图开发允许任意HTML的扩展,否则会产生与设置$wgRawHtml = true
的情况下同样的严重安全问题。