我们的网站目前正受到一些脚本的攻击,这些脚本将HTML代码添加到他们的座右铭和其他数据库表中(他们也可以访问),我们希望使用strip_tags
来过滤HTML,我们在我们的网站上使用了很多查询,所以我想知道是否有办法将这些规则应用于整个文档。
我们的一些查询如下所示:
<?php echo $users->UserInfo($username, 'motto'); ?>
其他人看起来像:
<div class="title">'.$campaign['caption'].'</div>
PHP的插件会很好,我们将Windows Server 2008 R2 SP1与IIS配合使用。
答案 0 :(得分:0)
最简单的方法是在实际的数据库抽象对象周围创建一个包装器对象 例如,如果有一个类型为“db”的对象为您提供了诸如“select”和“update”之类的一些信任函数,那么您可以编写一个扩展“db”并覆盖“select函数”的类。它可能看起来像这样(这是一个例子,因为你没有提供关于你的具体实现的足够信息)。
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);
现在所有现有查询都应使用删除标记的新函数。