Как защитить информацию сервера STUN/TURN в JS?

Я создаю приложение WebRTC, и JS будет иметь следующий код (учетные данные взяты из примера, а не настоящие):

{
  'iceServers': [
    {
      'url': 'stun:stun.l.google.com:19302'
    },
    {
      'url': 'turn:192.158.29.39:3478?transport=udp',
      'credential': 'JZEOEt2V3Qb0y27GRntt2u2PAYA=',
      'username': '28224511:1379330808'
    },
    {
      'url': 'turn:192.158.29.39:3478?transport=tcp',
      'credential': 'JZEOEt2V3Qb0y27GRntt2u2PAYA=',
      'username': '28224511:1379330808'
    }
  ]
}

это означает, что любой может получить мои учетные данные и использовать мой сервер для своих нужд.

Как избежать этой ситуации?


person Ben    schedule 03.05.2020    source источник


Ответы (1)


Самый распространенный подход — выдать учетные данные, срок действия которых истекает через пару часов. Это описано в этом проекте.

Например, указанные вами учетные данные взяты из этой статьи, и срок их действия истек Пн, 16 сентября 2013 г. (от new Date(1379330808 * 1000))

person Philipp Hancke    schedule 03.05.2020
comment
Спасибо за ваш ответ. В моем случае я хотел бы создать учетные данные для пользователей, которые будут подключаться в будущем, и отправить им ссылку. Они могут подключиться через 10, 15 дней - бывает по-разному. Вопрос в том, как считается экспирация. Это со времени входа на сервер + TTL, который я указал? - person Ben; 05.05.2020
comment
обычно вы должны генерировать учетные данные STUN/TURN в тот момент, когда клиент подключается к сигнальному серверу, а не раньше. Это отличается от токена подключения, который может иметь более длительный срок действия. - person Philipp Hancke; 05.05.2020