ai
3 мин
9 августа 2026 г.
Источник: Dev.to AI Feed

Исправление обхода пути: курсор пишет, игнорирует символические ссылки (CWE-22)

Charles Kern
Charles Kern
RSS AI Ingest
Исправление обхода пути: курсор пишет, игнорирует символические ссылки (CWE-22)

ТЛ;ДР Попросите Cursor исправить ошибку обхода пути, и вы получите path.basename, path.resolve и проверку включения startWith. Это похоже на ответ из учебника. Проверка представляет собой чистую строковую математику. Он никогда не касается диска, поэтому не может сказать, что...

ТЛ;ДР Попросите Cursor исправить ошибку обхода пути, и вы получите path.basename, path.resolve и проверку включения startWith. Это похоже на ответ из учебника. Проверка представляет собой чистую строковую математику. Он никогда не касается диска, поэтому не может определить, что файл в каталоге загрузки является символической ссылкой, указывающей на /etc/passwd. Используйте fs.realpath для проверки содержания, чтобы сравнение проводилось с тем, где на самом деле находится файл, и вообще перестаньте принимать имена файлов от пользователей. У меня была конечная точка загрузки файла с реальной ошибкой обхода пути. Учебная версия: req.query.file перешел в path.join и вышел с другой стороны в sendFile. Я вставил его в Курсор и попросил исправить обход. Это вернуло мне ответ, который я бы написал сам. Присвойте базовое имя вводу, разрешите его относительно каталога загрузки, проверьте, что результат все еще начинается с этого каталога, в противном случае отклоните. Четыре строки. Я прочитал, согласился с этим и отправил. Это все еще CWE-22. Не потому, что исправление небрежное, а потому, что каждая его строка оперирует строкой, а ошибка живет в файловой системе. Исправление записи курсора Вот код, близкий к дословному. Это правильно выглядящее исправление, которое останавливает ровно один из двух способов выхода из ситуации.

Хотите внедрить ИИ в ваш бренд?

Спроектируем и развернем автономных агентов и современный цифровой стек под ваши задачи.

Рассчитать проект