这个消毒是否有任何XSS泄漏

时间:2014-01-12 14:38:38

标签: php xss sql-injection sanitization

我想确保我的消毒剂没有任何泄漏。 而且,我只在硬编码的p标签和h1标签中输出用户数据

例如:<p><?php echo htmlspecialchars($user_data); ?></p>

这是一种保护我免受XSS注射的安全方法。

首先,我使用此函数在数据插入我的数据库之前对数据进行整理,而在我的数据库中使用bind_param

function sanitize($str) {
   return strtolower(strip_tags(trim(($str))));
}

sanitize($user_data); - > then gets inserted into db

然后,当我从数据库中抓取数据时,我正在使用它来显示它。

<p> <?php echo htmlspecialchars($user_data); ?> </p>

那么,这是一种阻止任何XSS的安全方法吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

从安全角度来看,只要您正在为输出的媒体正确地转义/处理数据,就不需要使用您的清理功能:

  • 使用htmlspecialchars()是输出到html所需的全部内容;
  • 如果您需要输出到javascript,请使用json_encode;
  • 为数据库使用带有绑定变量的预准备语句;