PDO是否准备了足够的语句

这个问题在这里已经有了答案:

  • PDO准备的语句是否足以防止SQL注入? 7个答案

  • 实际上这里有三个问题,每个都需要不同的方法。

    数据验证涉及验证提供了所有必需的表单参数,它们是可接受的长度并且具有正确的内容类型。 如果您没有可信任的ORM,则需要自己完成此操作。

    数据转义涉及以避免SQL注入的方式将数据插入到数据库中。 准备好的陈述是防止这种情况的一个很好的工具。

    数据呈现涉及避免XSS问题,您显示的内容可能会被误解为脚本或HTML。 您至少需要在这里使用htmlspecialchars

    请注意,如果您使用开发框架,所有这三个问题都可以解决。 有一个很好的看法是Laravel,因为文档是全面的,并且让你了解这一切是如何融合在一起的,但还有其他许多选择。


    你可以直接将数据传递到你的数据库中,但是如果用户提交的数据是闪避的,或者它可能是无效的呢? 他们可能会提交一封信,而不是一个号码,或者该电子邮件地址可能包含无效字符。

    您可以使用PHP的内置过滤器来增强服务器端的验证。

    您可以使用这些来清理和验证数据。

    验证过滤器检查用户提供的数据是否有效。 例如,电子邮件是否有效? 这个数字实际上是一个数字吗? 文本是否匹配某个正则表达式?

    消毒过滤器基本上删除给定数据类型的无效字符。 即删除不安全的字符,删除无效的电子邮件/ URL字符,删除非数字字符。

    有一堆帮助器方法可以清理和验证单个值,数组和关联数组,以及_GET_POST数组。

    Nettuts在这里和这里有关于这个问题的一些很好的教程。

    链接地址: http://www.djcxy.com/p/93755.html

    上一篇: Are PDO prepared statements enough

    下一篇: Prepared Statements and SQL Injection