Jump to content

手册:$wgRawHtml

From mediawiki.org
This page is a translated version of the page Manual:$wgRawHtml and the translation is 96% complete.
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才能区分它。

警告 警告: 在一个公众可编辑的网站上这么做会十分危险,因为它允许插入任意JavaScript代码,为会话劫持敞开大门。 因此,你不应该启用RawHtml,除非你已经将编辑限制在了拥有$wgGroupPermissions 权限的受信任用户之中。 更多关于限制写入权限的信息请参见手册:阻止访问
这个选项不会影响‎<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 Creates a new HTMLTemplate namespace like normal templates except written in html. Parameters are automatically escaped in a context sensitive manner


在你的wiki文章中使用自定义HTML的另一种方法是开发你自己的标签扩展不要试图开发允许任意HTML的扩展,否则会产生与设置$wgRawHtml = true的情况下同样的严重安全问题。