Для науки.
Скажем, у меня есть следующий код:
<?php
$filename = $_GET['filename'] . '.csv';
$handle = @fopen($filename);
Мы знаем, что эксплойт с нулевым байтом давно ушел, но возможно ли обойти вышеупомянутое добавление .csv, чтобы прочитать файл с другим расширением? Существуют очень творческие души.
Чтение удаленных файлов работает, имя файла =http://example.com/some.csv (.csv добавляется автоматически).
Если вы запрашиваете http://example.com/some.pdf?csv
, fopen
постараюсь собрать pdf файл …
Скорее используйте регулярное выражение для проверки $_GET
(вам следует всегда подтвердите ваши данные):
/(\.csv)$/g
поможет вам проверить, является ли расширение .csv
Других решений пока нет …