Публикация и версии
Быстрый режим#
Сейчас приложение публикуется из самого Pairx: «+» в чате → «Приложение» → «Новое из кода». Один HTML-файл до 512 КиБ, название — из <title>, переключатель «Только для взрослых (18+)». После «Отправить» сервис:
- Читает манифест из
<script type="application/pairx+json">и проверяет пределы. - Проверяет код — те же проверки делает
pairx check(см. ниже). - Создаёт приложение и его первую версию и отправляет карточку в чат.
Не больше 30 отправок в час от одного человека.
Что проверяет сервис#
| Код | Что ищет | Что будет |
|---|---|---|
webrtc | WebRTC: RTCPeerConnection, RTCDataChannel, RTCIceCandidate. | ручная проверка |
ice-server | Адрес STUN/TURN в строке: "stun:…", 'turn:…'. | ручная проверка |
frame-realm | Обращение к окну или документу фрейма: contentWindow, contentDocument, window.frames, window[0]. | ручная проверка |
miner | Признаки майнера криптовалюты. | ручная проверка |
detached-click | Нажатие ссылки из кода: созданная ссылка и click() в одном файле. | ручная проверка |
obfuscation | Признаки обфускации: eval или new Function вместе с раскодированием строк. | ручная проверка |
network | Сеть: fetch, XMLHttpRequest, WebSocket, EventSource, sendBeacon — наружу запросы не выполнятся, свои файлы читаются. | предупреждение |
external-url | Внешний адрес в src, href или import — не загрузится. | предупреждение |
webgl | WebGL — на iPhone его нет. | предупреждение |
audio | WebAudio (AudioContext) — на iPhone его нет. | предупреждение |
indexeddb | IndexedDB — на iPhone его нет; используйте localStorage или хранилища Pairx. | предупреждение |
wasm | Файл WebAssembly — на iPhone он не работает. | предупреждение |
- Ошибка — сервис не примет приложение и скажет, что исправить: неверный манифест, превышен предел, неподдерживаемый тип файла.
- Ручная проверка — версия принята, но сразу в чат не уходит: код посмотрит человек, обычно в течение суток. После проверки приложение появится в «Мои приложения» (из выбора приложения в чате) — оттуда его можно отправить. Это признаки обхода песочницы: даже если в вашем коде они случайны, без взгляда человека версия не выйдет.
- Предупреждение — в песочнице это просто не заработает; приложение публикуется сразу.
Код открыт#
Любой, кто открыл приложение, может посмотреть его код: меню приложения → «Посмотреть код». Не кладите в код того, что не должны видеть другие, — ключи, личные данные, ответы к тесту.
Версии#
Каждая отправка — неизменяемая версия с номером. Экземпляры в чатах открывают текущую версию приложения.
Чтобы данные экземпляров пережили обновление, сервис сравнивает манифест новой версии с выпущенной:
- хранилища можно только добавлять — убрать нельзя;
- тип хранилища менять нельзя;
- права записи
writersможно только сузить (everyone→admins→author); per_user_limitсчётчика можно только уменьшить.
Для более широкого правила нужно новое хранилище. Новые разрешения в версии — повод снова спросить согласие у каждого.
Жалобы и блокировки#
Любой, кто открыл приложение, может пожаловаться на него из меню: спам, обман или сбор паролей, оскорбления, не для всех возрастов, незаконное, другое. Pairx рассматривает жалобы и может заблокировать приложение целиком или его содержимое — тогда тот же код не примут и под другим названием.
Заблокированное приложение не открывается ни у кого: для всех оно выглядит как удалённое.
Вопросы о проверке и блокировке — на support@mail.pairx.org.