我们的网站目前正受到一些scriptkiddies的攻击,他们正在将HTML代码添加到他们的座右铭和其他数据库表中(他们也可以访问),我们希望使用strip_tags
来过滤其中的HTML,我们在网站上使用了很多查询,所以我想知道是否有办法将这些规则应用于整个文档。
我们的一些查询如下:
<?php echo $users->UserInfo($username, 'motto'); ?>
而其他看起来像:
<div class="title">'.$campaign['caption'].'</div>
PHP插件是很好的,我们使用带有IIS的WindowsServer2008R2SP1。
最简单的方法是围绕实际的数据库抽象对象创建一个包装器对象
例如,如果有一个类型为"db"的对象为您提供了一些方便的函数,如"select"one_answers"update",那么您可以编写一个扩展"db"并覆盖"select function"的类。它可能看起来像这样(这是一个例子,因为您没有提供足够的关于具体实现的信息)。
class db2 extends db
{
public function select($tableName, $whereClause)
{
$result = parent::select($tableName, $whereClause);
return strip_tags($result);
}
}
然后,您将替换实例化"db"的对象,转而实例化"db2"。
$db = new db($connectionParams);
应该用代替
$db = new db2($connectionParams);
现在,所有现有的查询都应该使用删除标记的新函数。