0

我正在尝试实现 HTMLPURIFIER,但是在回显出我想要净化的 HTML 之后,我仍然得到
<img src="kay.JPG" alt="my picture" />作为显示内容的一部分,同时它是为了显示图片。我究竟做错了什么?

     function readmore_about_cs($row, $id) 

     {    
            $config = HTMLPurifier_Config::createDefault();
            // configuration goes here:
            $config->set('Core.Encoding', 'UTF-8'); 
            $config->set('HTML.Doctype', 'XHTML 1.0 Transitional'); 
            $purifier = new HTMLPurifier($config);

     if (isset($_GET['readmore'])) { 
     $nomore = ($row['about_church_of_christ_content']);
     $pure_html = $purifier->purify($nomore);
     echo htmlspecialchars($pure_html);
     } 
     else 
     {                         
     if (strlen(trim($row['about_church_of_christ_content'])) > 350) 
     {
     $shortText = substr(trim($row['about_church_of_christ_content']), 0, 650); 
     $shortText .= '..<a href="http://127.0.0.1/church/about_cs.php?id='.$id.'&readmore=1">More</a>'; 
     $pure_html = $purifier->purify($shortText);
     echo htmlspecialchars($shortText) ;
     }
    }
    }    
4

1 回答 1

0

发生在您身上的是 HTMLPurifier 的默认行为,请注意以下解决方案将在您的安全性中造成漏洞,因为您基本上允许通过“src”属性进行 XSS 攻击。

这是您应该添加到代码中的内容:

// configuration goes here:
$config->set('HTML.Allowed','img[src], img[alt]');
于 2012-06-23T07:06:52.273 回答