Проблемы безопасности с PHP-методом Readfile - PullRequest
2 голосов
/ 26 января 2011

Эй. Есть ли какие-либо проблемы с безопасностью, о которых мне следует беспокоиться при использовании метода readfile в PHP? Я хотел бы использовать метод readfile, который принимает URL-адрес файла, хранящегося на различных сторонних серверах. Затем я передаю файл пользователю. Интуитивно понятно, что существует риск, поскольку URL может указывать на любой файл. С другой стороны, я использую только метод readfile (после обработки некоторых файлово-независимых данных) и не уверен, позволит ли это что-либо вредоносное на моем сервере. Также, согласно руководству, кажется, что если я хочу использовать URL с readfile, мне нужно включить fopen wrappers. Спасибо.

Ответы [ 3 ]

3 голосов
/ 26 января 2011

readfile не выполняет код на вашем сервере, поэтому здесь нет проблем.

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

согласно инструкции кажется, что если я хочу использовать URL с readfile, Мне нужно включить fopen wrappers

Да, вам нужно убедиться, что allow_url_fopen включен. если это не так, вам придется использовать cURL .

1 голос
/ 29 января 2011

Я думаю, что вам просто нужно сосредоточиться на двух вещах:

1) Не позволяйте вашим пользователям указывать , какой файл читается файлом чтения.(Потенциал для атак через каталог и т. Д.)

2) Не разрешайте пользователям изменять файл, который читается файлом чтения.(Потенциал для всех видов вреда!)

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

1 голос
/ 26 января 2011

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

Allow_url_fopen также представляет угрозу безопасности, если вы не будете осторожны.Это может позволить запросам, обслуживаемым через readfile (), include () и т. Д., Интерпретировать код PHP, если запрос был возвращен.

...