Книга: Выразительный JavaScript
Устранение утечек
Устранение утечек
Для упрощения доступа к файлам я оставил работать сервер у себя на компьютере, в директории /home/marijn/public
. Однажды я обнаружил, что кто-то получил доступ ко всем моим паролям, которые я хранил в браузере. Что случилось?
Если вам это непонятно, вспомните функцию urlToPath
, которая определялась так:
function urlToPath(url) {
var path = require("url").parse(url).pathname;
return "." + decodeURIComponent(path);
}
Теперь вспомните, что пути, передаваемые в функцию “fs”
, могут быть относительными. Они могут содержать путь “../”
в верхний каталог. Что будет, если клиент отправит запросы на URL вроде следующих:
http://myhostname:8000/../.config/config/google-chrome/Default/Web%20Data
http://myhostname:8000/../.ssh/id_dsa
http://myhostname:8000/../../../etc/passwd
Поменяйте функцию urlToPath
для устранения подобной проблемы. Примите во внимание, что на Windows Node разрешает как прямые так и обратные слэши для задания путей.
Кроме этого, поразмышляйте над тем фактом, что как только вы выставляете сырую систему в интернет, ошибки в системе могут быть использованы против вас и вашего компьютера.
- Часть III Диагностика и устранение неисправностей
- Устранение неисправностей МП
- Поиск и устранение неисправностей модулей памяти
- Диагностика и устранение проблем при подключении к Интернету
- Устранение проблем, возникающих во время навигации
- Урок 8.4. Устранение проблем в работе Windows
- Устранение конфликтов имен WSDL с помощью свойства MessageName
- Устранение неисправностей
- Устранение затора
- Изменения, связанные с устранением неявных допущений относительно предполагаемых размеров элементов данных
- Устранение неполадок
- Устранение связей (Decoupling)