Я только что написал очень простой сервер, который обслуживает каждый файл в каталоге, который я называю public
. Теперь этот сервер не имеет никаких функций безопасности (как я уже сказал, очень базовый), и поэтому я ожидаю, что следующая команда curl выдаст мне содержимое файла вне этого каталога:
curl 127.0.0.1:3000/../fileInTheParentDirectory.txt
Тем не менее, это не работает. Мониторинг трафика с помощью fiddler показал мне, почему: он фактически игнорирует ..
и пытается получить доступ к 127.0.0.1/fileInTheParentDirectory.txt
. Конечно, я не против иметь бесплатные функции безопасности, но я не понимаю, почему это происходит. Поэтому мой вопрос: автоматически ли удаляет curl ..
?Если да, то с какой версии он это сделал?
Я нашел ресурсы, которые утверждают, что это должно работать, поэтому я предполагаю, что поведение изменилось или изменилось в разных ОС или что-то в этом роде.
Если уместно, вот мой вывод curl --version
:
curl 7.50.3 (x86_64-apple-darwin14.5.0) libcurl/7.50.3 OpenSSL/1.0.2j zlib/1.2.8
Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP UnixSockets