Есть ли способ для Firebase Functions защитить конечную точку HTTP с помощью проверки домена? - PullRequest
0 голосов
/ 02 апреля 2020

Это то, что я пытаюсь выполнить sh: у меня есть веб-сайт c, размещенный на хостинге Firebase, и форма Google Forms. После нажатия кнопки «Отправить» я также хочу отправить пользователю электронное письмо, подтверждающее, что мы получили форму. Я написал функцию Firebase, используя конечную точку HTTP. Однако эта конечная точка доступна для публикации c. Есть ли способ защитить эту функцию? Я знаю, что мы можем выполнить проверку подлинности с вошедшим в систему пользователем, но мне не нужно, чтобы посетитель создавал учетную запись для отправки формы.

Спасибо!

Ответы [ 2 ]

1 голос
/ 02 апреля 2020

Другой возможностью может быть использование req.headers["x-forwarded-for"] для сравнения исходного IP-адреса запроса. Это не совсем проверка домена, потому что TCP / IP не знает о DNS, но все равно может быть объединен с обратным поиском (или просто списком IP-адресов). Это зависит от сценария (что на самом деле делает функция), потому что это также будет работать без проверки подлинности. Это от того, где кто ... знайте, что другой хостинг Firebase с тем же IP-адресом не может быть рассмотрен отдельно, но это исключит прямой доступ со стороны клиента.

1 голос
/ 02 апреля 2020

HTTP-триггеры, развернутые с помощью Firebase CLI, всегда доступны любому, у кого есть rnet соединение. Единственный контроль доступа предоставляется Google Cloud для ограничения доступа через IAM, который вам здесь не поможет.

Вместо этого вам следует защищать конечную точку, чтобы она была доступна только пользователям, вошедшим в систему с помощью Аутентификация Firebase. Есть множество примеров этого.

Вызываемые функции также упрощают проверку подлинности конечного пользователя во время вызова.

...