2010-05-05 2 views
2

Я пишу скрипт PHP, который использует сериализованные массивы для хранения данных. Как я могу предотвратить инъекцию в сериализации? Было бы очень легко назвать ваш счет:Сериализация массива в PHP, предотвращение инъекций

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

для простого примера. Затем пользователь мог бы добавить остальные необходимые параметры. Будет ли работать над этим? Разве php unserialize воспринимает это как беглый персонаж? Если это так, можно ли применить добавление к целому массиву без итерации?

Спасибо за помощь!

+0

От звука этого он, я бы так не подумал - просто чтобы быть в безопасности: вы не храните это в $ _COOKIE/$ _ POST/$ _ GET/$ _ REQUEST, не так ли? – Reece45

+0

Ни в коем случае. собирается прямо в/из базы данных lol. – Cyclone

ответ

3

Лучший способ узнать, будет пытаться сериализациями массива со строкой, имеющей "в нем

Любом: да, сериализовать делаю счет для двойных кавычек в данном, которые вы хранящие:

$ php -r "var_dump(unserialize(serialize(array('\"'))));" 
array(1) { 
    [0]=> 
    string(1) """ 
} 
Смежные вопросы