在提交到MySQL数据库之前清理文本输入

时间:2013-02-19 20:59:33

标签: php database pdo ckeditor sanitization

我目前正在努力确保在提交到数据库之前对我正在处理的web应用程序提交到数据库的文本进行了正确的清理,然后检索并正确显示。

忽略当前正在使用的消毒功能的混乱(目前是乱七八糟的东西),这就是我打算做的事情:

  1. 使用CKEditor进行文本输入。它会自动将HTML标记/符号转换为HTML实体。

  2. 利用PDO预处理语句将文本提交到数据库。

  3. 这足以正确消毒输入吗?我一直在阅读这篇文章,许多人都说要使用魔术引号,但是我读到魔术引号很旧,大多数人建议不要使用它。

    提前感谢您的任何帮助!

2 个答案:

答案 0 :(得分:2)

不要使用魔法引号。 http://php.net/manual/en/security.magicquotes.php

  

自PHP 5.3.0开始,此功能已被弃用,自PHP 5.4.0起已被删除。

如果您正在使用预准备语句,那么您应该安全地从SQL注入。在前端显示时,请记住通过htmlspecialchars()运行用户输入的数据。

答案 1 :(得分:2)

嗯,PDO只适用于初学者手册的基本情况 无论什么复杂的问题都会给PDO带来麻烦以及任何其他API。

但只要你准备浪费时间编写大量的插入语句,在这里回答所有这些答案后重复每个变量六到十次 - PDO就可以了。

但是只是为了让你知道,没有准备好的标识符声明。

至于CKEditor - 它不是客户端应用程序吗?如果是这样,它将不会保护任何东西 所以,更好地遵循另一个答案的建议 - 在HTML页面上显示时通过htmlspecialchars()传递不受信任的用户输入

相关问题