0

我需要实现用户发送一些内容的逻辑(它可以只是一个字符串,也可以是 HTML 标记的一部分),我们将该信息存储到数据库中,并在某个时间段内,我们替换基本电子邮件模板具有该数据的占位符并发送该电子邮件。

并且用户发送的数据有可能包含一些 HTML/XSS 注入。我们如何在将数据存储到数据库之前有效地验证数据???

4

1 回答 1

1

您通常可以使用针对 XSS 注入的方法htmlspecialchars,但是,我们知道您打算允许发送 HTML,因此您的验证必须检查<script. 如果您的输入中存在该内容,则应使其无效。现在,还有另一种在 HTML 中提供 Javascript 的方法,即 inline Javascript,作为 的值onclickonhover等等。我建议确保,如果标签之间存在这样的事件处理程序<>那么只需使输入无效。

现在,您还提到了 HTML 注入,即注入一些 HTML 会导致不良行为。但是,由于您在输入中欢迎 HTML,因此可以通过以下方式来区分“不良 HTML 注入”和“良好 HTML 注入”:

第一个标准很容易确定,阅读链接,第二个标准取决于业务逻辑。该 HTML 可能会破坏您的设计,例如,如果对它有一些期望,那么您需要为 HTML 方面的期望奠定基础。

而且,由于我们谈论的是安全性,请确保您也保护您的数据库免受SQL 注入

于 2020-04-25T11:51:17.707 回答