我目前正在处理一个被锁定在过时的CMS中的网站,该网站是从非合作/无响应的提供商处获得许可的。我需要添加rel =' canonical'标签到每个页面,但管理员WYSIWYG编辑器被证明是一个痛苦。当我切换编辑器的源选项卡时,我可以查看代码并输入我自己的添加内容,但是当我单击应用时,当我回顾编辑器源选项卡时,会过滤掉许多标签。
值得注意的是,我对PHP的经验非常有限。也就是说,我认为它可能会使用与strip_tags
类似的东西来评论或删除他们认为会成为问题的任何内容。我试验了一下我可以从过滤器中学到什么,并在下面发布了一些相关结果。
例如:输入
<?php
echo "<h2>PHP is Fun!</h2>";
?>
在保存更改后生成此结果
<!--?php
echo "<h2-->
<p>
PHP is Fun!"; ?></p>
并输入
<?php
echo "<head> <link rel='canonical' href='http://example.com/blog' />"
?>
结果
<!--?php
echo "<head-->
<link href="http://example.com/blog" rel="canonical" />
<p>
" ?></p>
因此,为了变得聪明,我想欺骗编辑关闭这样的评论:
<?php
echo "--><?php <head> <link rel='canonical' href='http://example.com/blog' />"
?>
导致
<!--?php
echo "----><!--?php <head-->
<link href="http://example.com/blog" rel="canonical" />
<p>
" ?></p>
我的观察结果是它将开始用所述标签中的注释替换任何打开的php标签,然后查找下一个>
并使用它来完成注释。 <head></head>
被完全剥离,任何内容都被遗忘。
知道这一点并看到输出可以任何PHP向导设计一种方法来击败评论和剥离头标记?我知道有两个头元素是无效的,但是从我的research大多数浏览器都接受并继续。