<?php
############### COPYLEFT GPLv3 LICENSE ###############
##
## Example.php
## Tag Filter - strip html tags and attributes by blacklist and whitelist
##
## Copyright 2009 GPLv3 - http://www.opensource.org/licenses/gpl-3.0.html
##
## Anthony Gallon
## oi_antz@hotmail.com
##
## Permission is hereby granted to any person having a copy of this software
## to freely use and modify as required so long as the copyright notices
## and branding remain intact.
##
############### COPYLEFT GPLv3 LICENSE ###############
$dirname = str_replace(DIRECTORY_SEPARATOR, '/', dirname(__FILE__));
require_once($dirname.'/classes/PHPQuery/phpQuery.php');
require_once($dirname.'/classes/Antz/TagFilter.php');
$FILTER = new Antz_TagFilter;
$allowTags = array('p', 'a', 'img', 'script');
$denyTags = array('style');
$allowAtts = array('class', 'href', 'src', 'name');
$denyAtts = array('onmouseover');
$explicitDenyAtts = array(
array('script' => 'src', 'iframe' => 'src')
);
$explicitAllowAtts = array();
$FILTER->setTagnameWhitelist($allowTags);
$FILTER->setAttributeWhitelist($allowAtts);
$FILTER->setTagnameBlacklist($denyTags);
$FILTER->setAttributeBlacklist($denyAtts);
$FILTER->setExplicitWhitelist($explicitAllowAtts);
$FILTER->setExplicitBlacklist($explicitDenyAtts);
$code = <<<CODE
Some text to start...
<script type="text/javascript" src="malicious.example.com" />
<style type="text/css">
body{
background-color: red;
border: solid green 3px;
}
</style>
<div>
<iframe src="malicious.example.com" style="width: 0; height: 0; position: absolute; left: -1px; top: -1px;" />
</div>
<img src="malicious.example.com" />
<p class="bold yellow" name="restricted">This is some content in a paragraph</p>
<p><a href="hello.txt" onmouseover="javascript:$.getJSON(malicious.example.com)">Click here!</a></p>
And text to end :)
CODE;
echo '<h2>Original code</h2><pre>'.htmlentities($code).'</pre><hr />';
$code = $FILTER->process($code);
echo '<h2>Filtered code</h2><pre>'.htmlentities($code).'</pre><hr />';
|