我目前正在努力确保在提交到数据库之前对我正在处理的web应用程序提交到数据库的文本进行了正确的清理,然后检索并正确显示。
忽略当前正在使用的消毒功能的混乱(目前是乱七八糟的东西),这就是我打算做的事情:
使用CKEditor进行文本输入。它会自动将HTML标记/符号转换为HTML实体。
利用PDO预处理语句将文本提交到数据库。
这足以正确消毒输入吗?我一直在阅读这篇文章,许多人都说要使用魔术引号,但是我读到魔术引号很旧,大多数人建议不要使用它。
提前感谢您的任何帮助!
答案 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()传递不受信任的用户输入