Nginx - Случайная переменная (Syn c ServerSide и ClientSide) - PullRequest
0 голосов
/ 05 августа 2020

Доброе утро, программисты, я пытаюсь защитить файл, и для этого у меня есть собственный модуль nginx, в этом модуле я могу загрузить nginx переменных (ServerSide) в файлы JavaScript / HTML (ClientSide ).

Итак, я могу создать в nginx файле HTML или Javascript функцию для открытия файла, позвольте мне привести небольшой и сокращенный пример:

На nginx:

set $teste thisisatest;

На HTML Файл:

<script>src = "/file_to_protect.js?d=$teste;</script>

Итак, я создал на HTML a small, чтобы открыть файл с переменной nginx, затем я устанавливаю nginx, если URI запроса не совпадает с этой переменной, пользователь получает 403, что отлично работает

Я могу вызвать $teste переменная, и она подберет серверную переменную, и все в порядке.

Мой вопрос: как я могу установить случайные переменные на стороне сервера и синхронизировать c на стороне клиента?

Допустим, я установил случайную переменную с lua

set_by_lua_block $teste { return string.format('%03d', math.random(1, 999)) }

Итак, я сохраняю случайное число в переменной $teste, и теперь одно , когда мы открываем код HTML в браузере, он заменяет $teste на случайную переменную, это прекрасно, он заменяет, проблема здесь в том, что он не может загрузить файл, поскольку, когда я устанавливаю случайную переменную , он будет отличаться на стороне сервера и клиента, позвольте мне привести еще один пример:

На nginx:

set_by_lua_block $teste { return string.format('%03d', math.random(1, 999)) }

if ($request_uri ~* "[?&]d=([^&]*)") { set $d $1; }
if ($d != $teste) {
set $fileblock 1;
}

На HTML Файл:

<script>src = "/file_to_protect.js?d=$teste;</script>

if ($d != $teste) не будет синхронизироваться c с src = "/file_to_protect.js?d=$teste;, это будет, например: if ($d != 4365) src = "/file_to_protect.js?d=5678;, конечно, это то, что я установил serveride, чтобы быть случайной переменной, но есть ли способ синхронизировать c на стороне сервера и на стороне клиента и изменять при каждом F5? Итак, файл полностью защищен?

PS: Я тоже пробовал модуль nginx N JS, но он все равно не синхронизируется c.

...