Как безопасный собственные функции php состоят в том, чтобы использовать с нефильтрованным входом?

Это известная ошибка, затрагивающая iOS 8.x и 9.x. Вы можете обойти это, создав /usr/lib/swift каталоги в соответствующем корне времени выполнения симулятора.

Время загрузки загруженного симулятора находится в /Library/Developer/CoreSimulator/Profiles/Runtimes.

Например, чтобы исправить симулятор iOS 9.3:

sudo mkdir '/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS 9.3.simruntime/Contents/Resources/RuntimeRoot/usr/lib/swift'
10
задан jeroen 12 March 2009 в 13:24
поделиться

9 ответов

Да. Все, что я должен был бы сделать, отправить "/etc/passwd" или "includes/dbconnection.php" (или что-либо) к Вашей странице, и в зависимости от какой //do some stuff на самом деле, я мог возможно удалить, изменить или считать уязвимую информацию. file_exists сама функция не сделает ничего, что Вы не ожидали бы, но можно ожидать злонамеренных пользователей, использующих логику.

Всегда санируйте свой ввод данных пользователем. Всегда. Если Вы ожидаете только захватывать файлы от одной конкретной папки, не позволять.. или / во входе

12
ответ дан 3 December 2019 в 14:35
поделиться

Отдельно, это выглядит довольно безопасным, но это могло использоваться для раскрытия информации. Это могло позволить нападению проверять на присутствие (или отсутствие) конкретных файлов (например. /etc/passwd, /proc/*, и т.д.).

Таким образом в этом примере, необходимо гарантировать это $_POST['brochure'] санирован сначала, чтобы только принять исходные данные тот потенциально правильный файл соответствия имена. Отбросьте любой вход, который содержит .., или это запускается с a /.

Другие функции могли иметь потенциально намного худшие побочные эффекты...

8
ответ дан 3 December 2019 в 14:35
поделиться

builtins PHP не сделает "неожиданных" вещей на плохом входе (например, file_exists("foo; rm -r /") скажет "нет, файл 'нечто; комната-r /' не существует")... И если они делают, это - ошибка, которую можно зарегистрировать против Пехлеви.

Конечно, это не мешает людям использовать Ваш код (например, file_exists("../hidden/shell.php")), таким образом, Вы должны все еще (на самом деле, Вы всегда должны) быть осторожным при раздавании предоставленного пользователями входа.

6
ответ дан 3 December 2019 в 14:35
поделиться

Необходимо действительно иметь привычку фильтровать весь вход, но Вы хотели бы проверять http://www.hardened-php.net/, который распределяет укрепляющийся патч и 'Suhosin', который находится во многих двоичных дистрибутивах по умолчанию (OpenSUSE, Mandriva и Debian/Ubuntu)

2
ответ дан 3 December 2019 в 14:35
поделиться

мог 'брошюра' = '../../../../.htaccess'

это - интересный вопрос.

Apache на моем компьютере установлен отрицать перечислять или просматривать .ht* и .ini и .php.inc файлы, но у Вас есть я взволнованный теперь.

4
ответ дан 3 December 2019 в 14:35
поделиться

То, что необходимо спросить, является ответом. Это не безопасно.

file_exists() не так плохо как другие, но если Вы не видите исходный код для функции, Вы передаете данные и знаете, как это обрабатывает ввод данных пользователем, затем Вы рискуете.

Это не хорошая идея передать нефильтрованные пользовательские данные в любую php команду файловой системы. Ключ с безопасностью - то, что Вы никогда не позволяете вход контекстному переключению. В этом случае Ваша минимальная санитизация должна удалять символы пути.

Всегда принимайте враждебного пользователя и худшее, которое они могли возможно сделать, если бы они видели Ваш исходный код.

2
ответ дан 3 December 2019 в 14:35
поделиться

За эти годы уязвимости системы обеспечения безопасности были найдены в источнике самого PHP, такие, что функции были чувствительны к нападениям стиля bufferoverflow, Suhosin является проектом, который исправил PHP для удаления части риска.

0
ответ дан 3 December 2019 в 14:35
поделиться

Я не доверял бы тем функциям вообще.

Это может окончательно звучать поразительно, однако когда я очень внимательно слежу за людьми и их качеством кода C в фиксациях, возвращается, и т.д. за прошлые восемь лет, я нахожусь только в постоянном страхе.

0
ответ дан 3 December 2019 в 14:35
поделиться

То, что происходит со строкой базы данных, - то, что она могла получаться и использоваться где-нибудь, который имеет уязвимость. Для ответа на Ваш вопрос думайте об удалении шага, где Вы храните строку и затем получаете ее. Вы используете его сразу же, и у Вас есть те же риски.

-1
ответ дан 3 December 2019 в 14:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: