如何解决如何在HTML Purifier中允许href =\'javascript:myFunc\'?
| 我有一些在本地编写的HTML,并且希望通过HTML净化器运行它。它完全由我生成,因此我知道没有XSS漏洞。我正在尝试通过净化器运行它,但是无论我尝试什么,都会解析href = \'javascript:myFunc()\'。 我当前的设置是:$string = file_get_contents($myHTMLFile);
$schemes = array (
\'http\' => true,\'https\' => true,\'mailto\' => true,\'ftp\' => true,\'nntp\' => true,\'news\' => true,\'javascript\' => true,);
$config = HTMLPurifier_Config::createDefault();
$config->set(\'URL.AllowedSchemes\',array($schemes));
$purifier = new HTMLPurifier($config);
$string = $purifier->purify($string);
这根本不起作用-剥夺了所有JavaScript。
我已经浏览了所有各种HTML Purifier配置设置,但找不到我需要的东西。有什么答案吗?
提前致谢
解决方法
简单的答案:不要在其上使用HTML Purifier。改用HTML Tidy之类的东西。
更复杂的答案:不要使用javascript:URL;相反,将类属性附加到您想要具有JavaScript的链接上,然后让JavaScript处理程序查找具有此类的链接,并将JavaScript代码作为onClick处理程序附加。
甚至更复杂的答案:创建一个新的javascript URI方案并对其进行编程,以仅接受属于您的函数的固定字符串。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。