Websockets, socket.io, nodejs и безопасность - PullRequest
11 голосов
/ 15 июня 2011

Я работаю над аналитическим приложением в реальном времени и использую websockets (через библиотеку socket.io) вместе с nodejs. Не будут передаваться «конфиденциальные» данные через веб-сокеты (например, имена, адреса и т. Д.). Он будет использоваться только для отслеживания посещений и общего количества посетителей (вместе с количеством посетителей в топ-10 самых посещаемых URL-адресов).

Есть ли какие-либо проблемы безопасности, о которых мне следует знать? Я открываю себя до:

  1. DoS атаки?
  2. XSS-атаки?
  3. Дополнительные дыры в безопасности, которые можно использовать для получения доступа к локальной сети веб-сервера / веб-сервера?
  4. Что-нибудь еще, что я не упомянул здесь?

Спасибо!

1 Ответ

9 голосов
/ 16 июня 2011

1. DoS attacks?

Вы открываете себя для атак DoS, и если они сделаны правильно, вы почти ничего не можете сделать против такого рода атак.

2. XSS attacks?

Если вы не фильтруете, вы уязвимы для атак XSS. Я полагаю, что вы можете защитить себя от этого, используя что-то похожее на this :

/**
 * Escape the given string of `html`.
 *
 * @param {String} html
 * @return {String}
 * @api private
 */

function escape(html){
  return String(html)
    .replace(/&(?!\w+;)/g, '&')
    .replace(/</g, '&lt;')
    .replace(/>/g, '&gt;')
    .replace(/"/g, '&quot;');
}
3. Additional security holes that could be used to gain access to the
webserver/webserver's LAN?

Вы должны защищаться от сетевых атак с помощью брандмауэра?

4. Anything else I didn't mention here?

  • Если вы отправляете конфиденциальную информацию, вы должны отправить ее как минимум через SSL. Вы должны также придумать какую-то схему аутентификации ...
  • Может быть, вы могли быть уязвимы для фиксации сессии?
...