PHP + MySQL:在没有addslashes()的情况下使用Serialize()是否安全


php + mysql: is it safe to use serialize() without addslashes()?

使用 serialize() 序列化的数组插入 db 是完全安全的,还是我应该先addslashes(serialize($array))?或者可以有一些 mysql 特定的字符?我可以通过插入删除数据或其他内容吗?

不,它根本不安全

而且你永远不应该使用addslashes而是mysql_real_escape_string。或者更好的是,将 PDO 与预处理语句一起使用,而不是转义。

在没有

特定于数据库的处理的情况下将序列化数据插入数据库是完全 ****un****safe 的*。

您应该使用任何推荐的机制来防止所选数据库访问层的SQL注入;使查询免受注入安全也包括正确转义数据,因此您将一石二鸟。

有关具体示例,请参阅如何防止 PHP 中的 SQL 注入?