← Усі пости

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

Як cross-origin iframe, Content Security Policy, підписані visitor tokens і allowlist доменів ізолюють повідомлення від JavaScript основного сайту.

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

Ризики віджета в DOM основної сторінки

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

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

Як iframe створює межу між origin

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

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

CSP, токени й allowlist як додаткові шари

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

Що перевірити під час security review

Переконайтеся, що батьківська сторінка не може читати DOM чату, а iframe дозволено вбудовувати лише на схвалених доменах. Перевірте передачу site ID, валідацію postMessage origin, строки життя й підпис visitor token, а також поведінку після видалення домену з allowlist.

Окремо перегляньте Content Security Policy, маршрути вкладень і rate limits. Ізоляція iframe зменшує поверхню доступу сторонніх скриптів, але не замінює автентифікацію, контроль походження, журналювання та обмеження зловживань. Безпека працює як кілька незалежних шарів, а не одна магічна межа.

Поширене запитання

Чи робить iframe чат повністю захищеним сам по собі?

Ні. Iframe створює важливу cross-origin межу, але Lavenity також використовує підписані visitor tokens, allowlist доменів, строгий CSP, перевірку origin і rate limiting. Надійність зʼявляється з поєднання цих контролів.