我正在编写一个PHP脚本,它使用序列化数组来存储数据。如何防止序列化注射?为您的帐户命名非常简单:
something";s:6:"access";s:5:"admin";
举个简单的例子。然后,用户可以某种方式添加其余所需参数。 addslashes会为此工作吗? php反序列化是否会成为一个转义字符?如果是这样,是否可以在不迭代的情况下将addslashes应用于整个数组?
感谢您的帮助!
答案 0 :(得分:3)
找出答案的最佳方法是尝试使用包含“in it
的字符串序列化数组无论如何:是的,序列化确实考虑了您存储的数据中的双引号:
$ php -r "var_dump(unserialize(serialize(array('\"'))));"
array(1) {
[0]=>
string(1) """
}