Location /path { set $salt "xxx"; alias /home/path/db/yyy;

set $extra_data "";
if ($args ~ "extra=([^&]+)") {
set $extra_data $1;
}

set_decode_base64url $decoded_extra_data $extra_data;

if ($decoded_extra_data ~ "(.*)\n(.*)$") {
set $filename $1;
set $hash_checksum $2;

set $data_to_hash $filename.$salt;

set $expected_hash_checksum "";
set_sha1 $expected_hash_checksum $data_to_hash;

}

set $valid "0";
if ($hash_checksum = $expected_hash_checksum) {
set $valid 1;
}

if ($valid != "1") {
add_header Content-Type "text/plain" always;
return 403 "invalid extra";
}

add_header Content-Disposition "attachment; filename=\"$filename.zip\"";
}

всем привет. подписываю файлы перед тем, как отдать пользователю на скачивание. ссылка имеет такой формат - exmaple.com/file?extra=HASH

hash генерируется так - base64encode($filename . "\n" . $hashsum);
hashsum это filename . salt

подскажите как от ифов избавиться, пожалуйста

2 ответов

20 просмотров

1. прочитай правила, пожалуйста 2. для текстовых портянок есть pastebin.com

Похожие вопросы

Обсуждают сегодня

Добрый день. Созданию отношения таблиц для учёта кораблей, их движения между точками (портами) согласно расписания. Терзают сомнения в правильном ли направлении двигаюсь 😅 1...
Aleksey
1
Привет. Наверняка у кого-нибудь здесь есть опыт работы с трекерами (встроенными в OpenCV (KCF) или абстрагированными) на одноплатниках. Если не рассматривать малинку и други...
Georgy Makarov
4
И всё-таки спрошу насчет такого вариант, сомнительно или нет? (Windows стоять не будет)
Georgy Makarov
5
Приветствую. Есть N видео объектов (фильмы). Часть полной длины просмотра а часть короткие ( обрезаны титры). Задача найти идентичные фильмы. Я не в курсе, есть ли аналог шаз...
Nikolay Chudinov
7
https://youtu.be/d8Jx6zO1yw0?si=AvWkrBe-RS3FAlWX Компилировал с CUDA по этому гайду, единственно моменты: 1) С VS 2022 работает, нужно только что бы была установлена среда C...
Denis
3
Кто знает как подружить Gstreamer с OpenCV? Вот такой пайплайн я шлю с гстримера но OpenCV + python у меня никак не получается его воспроизвести "gst-launch-1.0 nvarguscameras...
Artem
3
Как потом сделать чтобы питон видел нахождение скомпилированных файлов? Я через системные переменные пробовал указать расположение но не помогло
Artem
5
Всем привет! Подскажите пожалуйста С помощью OpenCv "смотрю" rstp поток, но там валятся ошибка типа [hevc @ 000001e4e2292ac0] Could not find ref with POC 7 Перерыл инет...
Evgeniy
1
Это везде так работает, или еще колдовать нужно?)
Квадрат Гипотенузы
6
Почему он автоматом не подхватывает gstreamer папку?
Artem
2
Карта сайта