好的,我知道一体化数据清理策略的答案不会这样做。我的问题是:是否有任何标准措施可以立即采取措施保护表单数据?除了做我自己的表单验证(即电子邮件,电话等)。
截至目前,这与WebApp(HTML,PHP和MYSQL)有关,但我不会说这应该仅限于我想要了解的最佳做法。从我所读到的,唯一应该做的事情就是在数据清理步骤中,在对该数据采取特定操作之前(即在存储到我的数据库之前使用mysql_real_escape_string)。
编辑:
除了SQL注入之外,还有哪些可能因未清除数据而发生的恶意攻击?
答案 0 :(得分:1)
Magic Quotes向我们展示了各种卫生设施“不管怎样”都是不好的做法。我们在运行时需要时验证数据,因为不同的使用需要不同的验证。
出于验证目的,现在有许多库可用,例如GUMP和Zend Forms(可在此处找到更多库:Easiest Form validation library for PHP?)。
P.S。:你在谈论mysql_real_escape_string。确保您使用的是PDO或mysqli,而不是现在的已弃用 Original MySQL API。有关更多信息,请阅读:Why shouldn't I use mysql_* functions in PHP?。
答案 1 :(得分:1)
首先,我假设你使用 MySQLi ( PDO 也很好)和不是弃用的MySQL扩展。如果没有,那么你一定要切换到这两个中的一个。
在将信息插入数据库之前,请务必使用预备语句和参数化查询(请参见此处: How can I prevent SQL injection in PHP?)
对于在插入数据库之前验证电子邮件,IP和其他类型的数据,请考虑使用filter_var()(请参见此处: http://php.net/manual/en/function.filter-var.php)
从数据库中提取信息时,请确保使用 htmlspecialchars()和 strip_tags()。
示例: htmlspecialchars(strip_tags($message_body))