Я пытаюсь перенаправить ВСЕ запросы на http function.
Я мог видеть, что наша функция будет вызываться для каждого example.com/someID
запроса, но не для * 1007. *. Это потому, что у нас есть папка с именем folder1
, которая игнорирует правило перенаправления, но у нас нет папки someID
, поэтому она слушает правило (и вызывает функцию)
exports.contentServer = functions.https.onRequest((request, response) => {
Я бы хотелперенаправить всех наших запросов, даже если для этого URL существует путь.
Мой файл firebase.json выглядит следующим образом:
"hosting": {
"rewrites": [
{
"source": "**",
"function": "contentServer"
}
],
"public": "public",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"headers": [ {
"source" : "**/*.@(jpg|jpeg|gif|png)",
"headers" : [ {
"key" : "Access-Control-Allow-Origin",
"value" : "*"
} ]
} ]
},
РЕДАКТИРОВАТЬ С УТОЧНЕНИЕМ
У меня есть такой путь public/fodler1/index.html
или public/fodler2/index.html.
Обычно, когда пользователь вводит example.com/someID
, я возвращаю из функции example.com/fodler1/?parm=1&parm=2
или example.com/fodler2/?parm=1&parm=2
, основанной на переменной someID
.
Теперь, если хакер сделает это с возвращенным URL: example.com/fodler1/?parm=fake!
, я бы хотелзнать, что перенаправляет этот URL также на function
и идентифицировать это. Но , поскольку у этого URL
уже есть существующий путь - example.com/fodler1/
, Firebase проигнорирует мое правило перенаправления и предоставит клиенту поддельную страницу с поддельными параметрами. (в отличие от example.com/SOMEID
, без папки1)
На других веб-сайтах я вижу, что если вы пытаетесь изменить параметр и обновлять - они всегда запрашивают у сервера снова , которые это исправляют -и это то, что я хочу получить.
Итак, даже если у меня есть папки с папками 1/2
, я все равно хотел бы перейти к своей функции.
В соответствии с документамипорядок приоритетов следующий:
Зарезервированные пространства имен, начинающиеся с / __ / * сегмента пути
Настроенные перенаправления
Статическое содержимое с точным соответствием
Настроенные изменения
Это означает, что, поскольку у меня есть точное совпадение с содержимым (папка существует), оно не будет перезаписано.