在PHP中序列化数组,防止注入

时间:2010-05-05 00:01:17

标签: php serialization sanitization

我正在编写一个PHP脚本,它使用序列化数组来存储数据。如何防止序列化注射?为您的帐户命名非常简单:

something";s:6:"access";s:5:"admin";

举个简单的例子。然后,用户可以某种方式添加其余所需参数。 addslashes会为此工作吗? php反序列化是否会成为一个转义字符?如果是这样,是否可以在不迭代的情况下将addslashes应用于整个数组?

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

找出答案的最佳方法是尝试使用包含“in it

的字符串序列化数组

无论如何:是的,序列化确实考虑了您存储的数据中的双引号:

$ php -r "var_dump(unserialize(serialize(array('\"'))));"
array(1) {
  [0]=>
  string(1) """
}