Недавно я получил электронное письмо от хакера в белой шляпе о том, что наш сайт уязвим для эксплойтов кликджекинга. Как небольшой стартап, ориентированный на прямые трансляции, мы иногда пренебрегаем передовыми методами безопасности, поскольку у нас есть масса другой технической работы. На фронтенде мы используем React JS и CRA. Мы размещаем наш SPA в корзине AWS S3 с помощью AWS Cloudfront. В этой статье я покажу вам, как мы настроили параметры AWS Cloudfront для предотвращения кликджекинга. Но сначала давайте рассмотрим, что такое кликджекинг.

Clickjacking включает в себя хакеров, использующих iframe вашего сайта, чтобы обманом заставить пользователей ввести свою информацию, когда на самом деле они собирают вашу информацию посредством манипуляций с пользовательским интерфейсом. В Hacksplaining есть отличное интерактивное руководство о том, как обычно работают эксплойты для кликджекинга. Если вы когда-либо экспериментировали с попытками поместить другие сайты, такие как Amazon.com, в iframe, и обнаружили, что они не работают, это потому, что Amazon пытается предотвратить атаки такого типа.

Чтобы предотвратить кликджекинг, вам нужно изменить заголовки, отправляемые с вашего сервера, чтобы другие сайты не могли встроить ваш сайт в виде iframe. Для этого вы можете использовать заголовки

X-Frame-Options: SAMEORIGIN

OR

X-Frame-Options: DENY

Чтобы сделать это с помощью AWS Cloudfront, вам нужно добавить функцию на вкладке функций, чтобы добавлять заголовки к ответу. AWS фактически предоставляет вам пример кода, если вы хотите проверить дополнительные параметры безопасности ЗДЕСЬ.

Также при тестировании и публикации вашей функции обязательно отметьте тип события как Viewer Response.

Вы также можете проверить, отправляются ли правильные заголовки, используя этот полезный инструмент от Geekflare.

Надеюсь, вы нашли эту статью полезной. Если это так, пожалуйста, хлопните в ладоши. Спасибо!