Доброе утро, программисты, я пытаюсь защитить файл, и для этого у меня есть собственный модуль 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.