【发布时间】:2012-05-08 10:32:40
【问题描述】:
将使用serialize() 序列化的数组插入db 是否完全安全,或者我应该先做addslashes(serialize($array))?或者可以有一些mysql特定的字符?我可以使用插入删除数据或其他内容吗?
【问题讨论】:
标签: php mysql serialization
将使用serialize() 序列化的数组插入db 是否完全安全,或者我应该先做addslashes(serialize($array))?或者可以有一些mysql特定的字符?我可以使用插入删除数据或其他内容吗?
【问题讨论】:
标签: php mysql serialization
不,它根本不安全。
你不应该使用addslashes,而是使用mysql_real_escape_string。或者更好的是,将 PDO 与准备好的语句一起使用,而不是转义。
【讨论】:
addslashes()! 使用mysql_real_escape_string() 转义 MySQL 数据库的数据。总是。
完全 ***不安全*将序列化的数据插入数据库而不进行特定于数据库的处理。
您应该使用推荐的任何机制来防止您选择的数据库访问层的 SQL 注入;使查询安全免受注入还包括正确转义数据,因此您将用一块石头击中两只鸟。
【讨论】:
addslashes 不是一个好的解决方案,因为它只会在大多数的时间里起作用。请花时间阅读我链接到的问题。
mysql_real_escape_string 之后如何取消转义?