微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在HTML Purifier中允许href =\'javascript:myFunc\'?

如何解决如何在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 举报,一经查实,本站将立刻删除。