Разработка писем и безопасность

Аутентификация запросов в AMP-письмах

XHR-запросы не содержат cookie, поэтому следует идентифицировать пользователя с помощью токенов доступа.

Токен нужен для гарантии, что только тот, кто имеет доступ к AMP-письму, может выполнять содержащиеся в нем запросы. Токены доступа должны быть криптографически защищены и ограничены по времени и объему. Они включены в URL запроса.

Этот пример демонстрирует использование <amp-list> для отображения аутентифицированных данных:

<amp-list src="https://example.com/endpoint?token=REPLACE_WITH_YOUR_ACCESS_TOKEN"
height="300">

<template type="amp-mustache">

...

</template>

</amp-list>

При использовании <amp-form> поместите токен доступа в action-xhr URL:

<form action-xhr="https://example.com/endpoint?token=REPLACE_WITH_YOUR_ACCESS_TOKEN" method="post">

<input type="text" name="data">

<input type="submit" value="Send">

</form>

Проверка прокси-сервером

Все XHRs, поступающие из APM-письма, проходят проверку прокси-сервером Mail.ru, чтобы защитить данные пользователя.

Ниже описано, какие заголовки следует ожидать в запросе и ответе сервера.

Запросы

Запросы, поступающие от прокси-серверов Mail.ru, содержат следующий заголовок:

Origin: https://e.mail.ru

Также они могут содержать следующий query-параметр:

__amp_source_origin=<sender email address>

Например, XHR-запрос от amp-list к https://example.com/data.json, который исходит из письма с адреса sender@example.com, выглядит так:

Request URL: https://example.com/data.json?__amp_source_origin=sender@example.com
Request Method: GET
Origin: https://e.mail.ru

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

Ответы

Все ответы должны содержать три заголовка:

Access-Control-Allow-Origin: https://e.mail.ru
AMP-Access-Control-Allow-Source-Origin: <ваш адрес, с которого ведутся рассылки>
Access-Control-Expose-Headers: AMP-Access-Control-Allow-Source-Origin

Например, если письмо отправлено с адреса sender@example.com, заголовки должны включать следующее:

Access-Control-Allow-Origin: https://e.mail.ru
AMP-Access-Control-Allow-Source-Origin: sender@example.com
Access-Control-Expose-Headers: AMP-Access-Control-Allow-Source-Origin

Если ответ не содержит эти заголовки, прокси-сервер Mail.ru отклонит ответ и пользователь не увидит динамический контент в письме.

Ограничения

XHR URL не должны использовать HTTP-редиректы. Запросы, которые возвращают статус кодов редиректов (например, 302 Found или 308 Permanent Redirect), вызывают ошибку и предупреждение в консоли браузера.

Создание AMP-писем

Чтобы создавать AMP-письма, используйте документацию формата.

Также вы можете использовать наш HTML-редактор для написания AMP-писем. Редактор показывает готовое решение и выделяет ошибки, которые можно исправить там же. Готовый результат вы сразу же сможете отправить себе в почту.

image

Support

We will help solve the problem