Lavenity 1.0: реалтайм-чат, статуси прочитання та командні вхідніЩо нового

← Усі пости

Чому чат має жити в iframe

Як ізоляція origin, CSP і підписані токени відвідувача тримають листування поза JavaScript вашого сайту.

Вбудовувати чат як first-party скрипт на сторінці зручно — і ризиковано. Будь-який код на сторінці може читати DOM, чіпати мережеві виклики чи знімати текст повідомлень.

Lavenity тримає інтерфейс розмови на нашому origin всередині iframe. Скрипти вашого сайту не отримують доступу до вмісту повідомлень, а скомпрометований шаблон чи сторонній тег не можуть тихо витягнути тред.

Батьківська сторінка вантажить лише маленький bootstrap-скрипт, який відкриває фрейм і передає site ID. Міжorigin-межі роблять ту ізоляцію, якої не дають віджети в тому самому документі.

Додатково ми підписуємо токени відвідувачів, щоб історію не можна було підробити, обмежуємо віджет allowlist доменів, застосовуємо строгий Content Security Policy і ріжемо зловживання rate-limit до того, як воно потрапить у вхідні.

Якщо проводите security review, почніть з межі iframe, підпису токенів і allowlist доменів — це контроли, які найбільше важать для чат-ембеду.

Питання про персональні дані — у Політиці конфіденційності. Операційний чеклист — на сторінці Безпека.