mediawiki/iframe-tag

安装: 581

依赖项: 0

建议者: 0

安全: 0

星标: 2

关注者: 5

分支: 3

开放问题: 3

类型:mediawiki-extension

1.1.1 2023-10-22 03:17 UTC

This package is auto-updated.

Last update: 2024-08-24 23:34:06 UTC


README

本扩展允许您在维基中使用iframe标签,并尝试验证嵌入iframe中的URL。您的维基管理员将能够使用MediaWiki命名空间中的一个页面来更新允许的URL列表。

截至本文撰写时,只支持以下属性

src
资源地址
height
垂直维度
width
水平维度
allowfullscreen
是否允许iframe的内容使用requestFullscreen()
sandbox
控制应用于iframe中嵌入的内容的限制
style
这是唯一支持的全局属性。它通过基础标签构建器类实现。

配置允许的主机

目前,主机名匹配是基于完整域名进行的。如果在配置中提供了允许的主机列表,并且iframe标签的src属性中的主机不在配置的主机列表中,则不会在维基上显示iframe标签。

有两种方法来配置允许的域名。

维基配置

此方法默认启用,但如果您不希望管理员更改允许域名列表,则可以将$iFrameOnWikiConfig设置为false

$iFrameOnWikiConfig=false;

如果您启用此方法,具有editsitejson(默认情况下为管理员和界面管理员)权限的人将能够更改[[MediaWiki:IFrame-cfg.json]]的值。要授权仅三个域名,可以使用以下内容

{
    "domains": [
        "one.example.com",
        "two.example.com",
        "two.example.com"
    ]
}

PHP配置

这是熟悉的“在您的LocalSettings.php中设置PHP变量”方法。

在您的LocalSettings.php中,为变量$iFrameDomains添加一个设置,该变量包含允许的域名数组。例如,要授权与上面维基配置中相同的三个域名。

$iFrameDomains = [
	   'one.example.com',
	   'two.example.com',
	   'three.example.com'
];

标签的解析方式

使用PHP的parse_url解析src属性。方案已验证为安全(仅允许httphttpsftp),URL的域名将与允许的URL列表(如果指定)进行比较,任何指定的端口将被添加,以及任何路径、查询字符串(?之后的部分)或片段(#之后的部分)。

如果在解析iframe标签属性时发现问题,则跳过该属性,将有关错误的信息作为HTML注释插入到页面输出中。

如果src属性有问题,则跳过iframe标签,作者将必须检查HTML源以查找任何问题。