Websockets, socket.io, nodejs и безопасность

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

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

  • DoS-атак?
  • Атаки XSS
  • Дополнительные дыры в безопасности, которые могут быть использованы для доступа к локальной сети web-сервера/веб-сервера?
  • Что-нибудь еще я здесь не упоминал?

Спасибо!

Ответ 1

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 LAN?

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

4. Anything else I didn't mention here?

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