Рубрика «nodejs» - 28

Внутри HTTP сервера, встроенного в Node, обнаружена уязвимостьМэтью Дэйли (Matthew Daley) выяснил, что в коде HTTP-сервера, встроенного в движок Node, есть ошибка или даже просто опечатка (используется «size» вместо «size_»), так что специально сформированным запросом к серверу можно добиться того, что сервер существенно переоценит реальный размер запроса и включит в него содержимое соседних чужих HTTP-запросов (например, частью переданной на сервер переменной станут чьи-нибудь чужие cookies; и если это будет переменная из числа тех, которые тотчас же выводятся на экран, то крякерская атака легко может оказаться успешною).

Всем пользователям Node версий 0.5.x и 0.6.x следует без промедления обновить Node до версии 0.6.17, а обладателям экспериментальных версий из ветки 0.7 следует обновиться до 0.7.8. (Версии 0.4.x не содержат этой ошибки, однако на вашем месте я бы их всё равно обновил, ибо они старьё.)

Об этом опубликовано оповещение во блоге Node.

Читать полностью »

в 5:09, , рубрики: Node, node.js, nodejs, метки: , ,

node getВ движке Node встроенным средством отсылки запросов к отдалённым web-серверам (и обработки полученных откликов) является метод http.request(), однако он оказывается чрезмерно низкоуровневым: если на дальнем конце настроено серверное перенаправление, то этот метод выдаст вам страницу с кодом HTTP 301 (или HTTP 302, или HTTP 303…), а не ту страницу или файл, на который перенаправление указывает.

Преодолеть этот недостаток помогает модуль node-get, разработанный организацией «Development Seed»: он автоматически обрабатывает перенаправления и получает окончательный отклик на отосланный запрос.

Читать полностью »

Это небольшая история страданий, боли, взлетов и падений в попытках ускорить работу RaphaelJS на больших и сложных SVG. Если вы страдаете от подобных проблем, то не стоит ждать в конце этой статьи серебряной пули, но, надеюсь, что про наш путь поиска решения будет интересно прочитать всем.

Читать полностью »

Документация — одна из самых важных составляющих любого проекта, особенно если этот проект с открытым кодом, который будут читать другие люди. Чтобы сделать мир opensource чуточку лучше, я попытался собрать свои знания в области организации модулей nodejs проектов и сделать такой инструмент как Makedoc!. Ремарка для адептов ruby: это почти то же, что и rdoc.info для руби.

Этот инструмент анализирует код проекта, выделяет потенциально документируемые куски кода (не важно, с документацией или без), и генерирует статический набор страничек, описывающих проект.

В кратце шаблон использования такой: идем на makedoc.node-js.ru/[githubusername]/[projectname] и видим готовую документацию по проекту. Либо идем на makedoc.node-js.ru/[githubusername] и получаем список проектов для которых можно сгенерировать документацию.

За деталями реализации прошу под кат.
Читать полностью »

Здравый смысл веборазработчика подсказывает, что во браузерном джаваскрипте глобальные переменные являются свойствами объекта window — так что window.чегоНибудь и просто чегоНибудь должны быть синонимами и вести себя одинаково (если, конечно, мы не находимся в какой-нибудь такой функции, где переменную чегоНибудь переопределили локально).

Здравый смысл веборазработчика также ещё подсказывает, что неопределённая переменная должна иметь значение undefined — так что чегоНибудь и undefined должны быть синонимами и вести себя одинаково, если переменную чегоНибудь не упоминали в джаваскрипте, и если какой-нибудь чудила не дерзнул переопределить undefined.

Но если вы собираетесь программировать для Opera 11 (будь то начальная версия Opera 11.01 или новёхонькая Opera 11.61), то будьте готовы отречься от здравого смысла в обоих сих случаях! (Да и не только в Opera, как я покажу чуть ниже.)

Чтобы нагляднейше убедиться в этом, воспользуемся библиотекою Underscore.js, в которой как раз имеется удобная функция тестирования неопределённых переменных — это функция _.isUndefined(), в исходном коде определённая самоочевидным способом:

// Is a given variable undefined?
_.isUndefined = function(obj) {
   return obj === void 0;
};

Читать полностью »

image

В этой публикации я поставил перед собой несколько целей:

  • Сравнить разные стили программирования работы с БД Firebird в NodeJS;
  • Найти наиболее производительный вариант;
  • Получить в результате руководство к действию тем, кто начинает использовать Firebird в NodeJS.

Дальше много кода…
Читать полностью »

в 17:54, , рубрики: node.js, nodejs, php, метки: ,

Являясь постоянным пользователем форума nodejs.ru, часто наблюдаю картину когда люди начиная изучать nodejs сравнивают ее с php, а иногда пытаются работать с ней так как с php. Я бы хотел объяснить “на пальцах” разницу между php и nodejs применительно к работе сайта. Статья предназначена для новичков. Я намеренно буду говорить очень упрощенно, не вдаваясь в глубокие подробности, что бы как можно проще показать различия в технологиях.
Читать полностью »

При реализации модели для манипуляции с данными в MongoDB, я пришел к выводу, что нужно как то избежать проблем с вложенностью асинхронных вызовов. Я не знал о существовании Step для Node.js и решил создать свой велосипед. Чем и хотел бы с Вами поделиться, уважаемые Хабро пользователи.

Вступление

Для того чтобы решить проблему вызовов и дальнейшей передачи информации, следующему в очереди вызову, родился модуль AQueue (реализация последовательной очереди асинхронных вызовов). В реализации данного модуля, лежит принцип, применяемый в реализации промежуточного слоя роутинга в Express.js (к примеру для проверкиЧитать полностью »

Node.JS / Connect 2 — Новые дополнения, улучшения и документация!

Не так давно, а именно 2011-10-05 вышла новая версия фреймворка connect 2.0. На хабре был замечен пробел, а тут выдалось пару свободных часов. Буду писать сразу про версию 2.0.1 вышедшую 29 февраля. Во второй версии сделали много очень нужных и долгожданных изменений.

Прошу все ошибки писать в ПМ, думаю их тут будет много, за что заранее приношу свои извинения.

HTTP и HTTPS для одного сервера-приложения!

Ранее connect.Server был унаследован от net.Server из ядра NodeJS, это вызывало неудобства для создания одновременно HTTP и HTTPS приложения. В результате connect() (ранее connect.createServer()) стал новойЧитать полностью »

Изучая node.js я обнаружил, что добиться успеха в этом непростом деле мне мешает постоянная необходимость перезапускать руками сервер node в командной строке. Так появилась идея повесить перезапуск сервера на горячую клавишу в любимом редакторе (в моем случае, Vim'е) сохранив возможность следить за выводом STDOUT и STDERR сервера. Решение linux-only, поскольку написано на sh.

Однако, одним node.js дело не ограничивается. Используя это решение можно организовать перезапуск и перенаправление вывода любой утилиты (python/php/etc), просто указав ее имя в настройках скрипта вместо node.

Не исключаю вероятность, всё это (и намного больше) реализовано в «нормальнойЧитать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js