#php #security #serialization
#php #Безопасность #сериализация
Вопрос:
Я беру пользовательский ввод и записываю его в массив:
$array = (
'name'=>$_GET['some name'],
'text'=>$_GET['some text']
);
Я сохраняю эти данные:
file_put_contents($myFile,serialize($array));
Мне интересно, поскольку текст и имя генерируются пользователем, какие проблемы безопасности я здесь рассматриваю.
Комментарии:
1. «Обезопасить» каким образом?
2. Мне интересно, может ли пользователь внедрить что-нибудь вредоносное на данный момент.
3. @Howard Zoopaloopa: они не могут (если только в
serialize
/ нет ошибкиunserialize
, о которой я никогда не слышал)4. @zerkms, вот что мне было интересно. Я понимаю, что если кто-то может переписать или получить доступ к этому файлу после его записи, могут возникнуть проблемы.
5. @HowardZoopaloopa Или создал файл заранее; запись в файл с
file_put_contents
помощью не приведет к повторному созданию существующего файла или применению каких-либо стандартных umasks / разрешений. (Кроме того, плохо настроенная или уже скомпрометированная система может применить небезопасную umask при создании.)
Ответ №1:
Если доступ на запись к файлу ограничен только вашим скриптом — это совершенно безопасно.
Комментарии:
1. Что ж, это освежает. Я отмечу вас правильно через (10) мин.. Спасибо.
2. @user2864740: … это другая история. Речь шла бы об утечке конфиденциальной информации (и я уверен, это очевидно для всех).
3. Вот почему этот ответ вводит в заблуждение — поскольку он не является «совершенно безопасным». (Я бы сказал, что вся концепция этого ответа «очевидна для всех», но если бы это было так, то такого вопроса / ответа не существовало бы.)
4. @user2864740: вопрос заключается в безопасности операции сериализации / десериализации. Что является безопасным (если только не существует
unserialize
уязвимости функции нулевого дня)5. Заголовок вопроса звучит так: » Безопасно ли хранить пользовательский ввод в сериализованном массиве PHP?» Ни разу ОП не направлял вопрос на эксплойт в процессе десериализации или даже на использование данных.