[Web] Как лучше отдавать контент по одноразовым паролям?
Вернулсячерез сколько?
а если он через три дня вернется, а через 3 месяца, а через 3 года?
это понятно. Один из способов - время жизни пароля с момента нажатия сабмита. А без этого никак?
вводишь пароль, на сервере создается временная папка, туды копируется файл, клиент редиректится на этот файл
через сутки файл удаляется (скрипт раз в час по крону удаляет файлы, время создания которых старше заданного)
Видимо, так и придется людям писать, что пароль действителен сутки
Кроме этого бывает полезным завязываться на последние два байта ip адреса. Это уменьшает возможность передать эту ссылку кому-то другому (или вообще сделать общедоступной но при этом почти не задевает тех, у кого динамический ip адрес.
да это-то тут причем...
ну что, берёшь урл, лимит работы, ойпи если надо, подписываешь эту херь РСА и отдаёшь пользоватетелю вводить в поле пароля =)
в парагоне у меня было так (собсна думаю вряд ли что изменилось)это же не экономично - копирование файлов. надо чтоб доступ к файлам шел по ссылке вида http//z/x
вводишь пароль, на сервере создается временная папка, туды копируется файл, клиент редиректится на этот файл
через сутки файл удаляется (скрипт раз в час по крону удаляет файлы, время создания которых старше заданного)
где x - строка, действующая час или два, или сутки. Сервер обрабатывает строку x и в зависимости от нее отдает файл
выносить задачу раздачи с уровня статики в динамику может оказаться неэкономичным с точки зрения процессорного времени. У того же IIS раздача статических файлов идет на уровне ядра.
давно, кстати?
клац
Даже, наверное, лучше бац:
Как минимум, начиная с 6-го, есть кое-что: Даже, наверное, лучше бац:
http.sys listens for incoming HTTP requests and passes them on to the appropriate routine. Because it runs in kernel mode rather than user mode, http.sys interacts with the operating system at a lower and much faster level.в случае статических страниц, насколько я знаю, из уровня ядра http.sys и не будет выходить
зы. ну да, я про http.sys слышал, мне просто интересен был ~ год, когда оно появилось.
вместо копирования можно поставить hard link, что очень, очень экономичноЭто очень, очень хуёвое решение, хардлинки нужны совсем не для этого.
Ты не должен на уровне пользовательского приложения знать о хардлинке.
Это очень, очень странное мнение. Откуда ты его взял ?
ты вот говоришь, что это плохо. Почему? Что становится от этого решения хуже?
Почему? Что становится от этого решения хуже?может это тяжело сделать на пыхпыхе =)
Ага, а ещё можно всё написать на ассемблере, да ещё и заюзать SSE4 - и всё вообще будет очень быстро.
тебя к ассемблеру форумчане не подпустят. %
будет как в анекдоте про ржевского, который молодёжь онанизму обучил
На балу юный Николенька Ростов всем мешает, шалит. Ржевский отозвал его на пару минут, и Николеньки как след простыл. Дама спрашивает Ржевского : "Поручик, как Вам это удалось?" "Пустяки-с , мадам, онанизму обучил...":?
имхо, ни фига не поможет.
его просто многие перестанут понимать, как контру.
ну я надеюсь, что реагировать на непонятное тоже станут меньше
вместо копирования можно поставить hard link, что очень, очень экономичноу меня в парагоне симлинки делались
выносить задачу раздачи с уровня статики в динамику может оказаться неэкономичным с точки зрения процессорного времени. У того же IIS раздача статических файлов идет на уровне ядра.
там сусе и апач
Кстати, а что с контрой? Мне его нехватает!
был тред недавно, но там ничего по теме.
тебя к ассемблеру форумчане не подпустят. %Форумчане Пенартура уже допустили до аццкой травы, так что ассемблер уже ему не нужен.
у меня в парагоне симлинки делалисьтоже можно. Я про хардлинки сказал, имея в виду windows+ntfs+IIS. В винде он по ярлыкам не ходит.
там сусе и апач
вместо копирования можно поставить hard link, что очень, очень экономичноВместо копирования можно ваще-то юзать mod_rewrite, что логичнее.
но не всегда удобно. Т.к. если у нас по динамическому урлу заходят, mod_rewrite будет вынужден в базу залезть, чтобы узнать настоящий путь файла. А если юзать hard link, дергать базу не надо.
не обязательно, в путь до файла можно загнать всю необходимую инфу, типа хеша айпи, даты действия и ID нужного файла.
да можно, можно. На gzgate я так и делал. Только, подумав хорошо, я не вижу смысла писать код, который будет по урлу восстанавливать путь, если этот код можно не писать.
Потому что ты потом запаришься чистить файловую систему от того мусора, который ты там разведёшь харлинками. Ладно ещё симлинки, их можно быстро найти и покоцать..
Складываем все временные файлы в папку users/username. Раз в день запускается cron, который прибивает все hard links с датой создания больше суток (или сколько там хочется давать скачивать).
Ну, а прибить все совсем просто, как ты понимаешь.
Так, я что-то не пойму. Хардлинки - это же хардлинки, там метаданные у всех копий одинаковые. Вы по дате создания чего прибивать их собрались, оригинального файла?
Поэтому кладем в users\yyyymmdd\username.
Оставить комментарий
uncle17
С text/html всё, вроде бы, просто. Ввел человек пароль - ему дали страницу и стерли пароль из базы.А вот если нужно отдать файло? Ввел человек пароль, отдал ты ему нужный файл, пароль стер из базы. А человек начал качать его ре/флеш/каким-то-еще гетом. И решил на минуточку на паузу поставить. Вернулся, а ему - хрена, не знаем твоего пароля. Человек в замешательстве.
Как быть?