Php 如何允许a href=';javascript:myFunc()';用HTML净化器?

Php 如何允许a href=';javascript:myFunc()';用HTML净化器?,php,html-parsing,htmlpurifier,Php,Html Parsing,Htmlpurifier,我有一些我在本地编写的HTML,希望通过HTML净化器运行它。它完全由我生成,因此我知道没有XSS漏洞。我正在尝试通过净化器运行它,但是无论我尝试什么,href='javascript:myFunc()'都会被解析出来 我当前的设置是: $string = file_get_contents($myHTMLFile); $schemes = array ( 'http' => true, 'https' => true, 'mailto' => true

我有一些我在本地编写的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净化器配置设置,但找不到我需要的。有什么答案吗


提前感谢

简单回答:不要在上面使用HTML净化器。改用HTML之类的工具

更复杂的答案是:不要使用javascript:url;相反,将类属性附加到希望使用JavaScript的链接上,然后让JavaScript处理程序查找具有此类的链接,并将JavaScript代码附加为onClick处理程序


更复杂的答案是:创建一个新的javascript URI方案,并对其进行编程,只接受作为函数的固定字符串。

简单答案:不要在其上使用HTML净化器。改用HTML之类的工具

更复杂的答案是:不要使用javascript:url;相反,将类属性附加到希望使用JavaScript的链接上,然后让JavaScript处理程序查找具有此类的链接,并将JavaScript代码附加为onClick处理程序

更复杂的答案是:创建一个新的javascript URI方案,并对其进行编程,只接受作为函数的固定字符串。

有文档链接。尽管我不太明白。(笨重的配置)-如果你弄明白了,请自己把答案贴在这里!有文档链接。尽管我不太明白。(笨重的配置)-如果你弄明白了,请自己把答案贴在这里!