Cum se convertește o legătură permanentă la o depășire temporară a stivei în limba rusă

Există o idee mică.

Odată ce mecanismul există și trimite în siguranță fișierele, nu credeți că puteți folosi un nume de fișier simplu? Ie pentru un token unic pentru a lua numele fișierului. Și utilizatorul trimite o legătură directă la fișier.







(nu trebuie să scrie undeva că un astfel de jeton este dat un astfel de fișier)

"Trebuie doar să copiați link-ul permanent la fișier și să-l convertiți temporar." Nu este nevoie de nimic. Efectuați un script php care ar trebui elaborat o dată pe oră, verifică timpul de creare a fișierului și îl demolează. (lucrurile astea fac cron, timers și trrr) (depinde de viespi)

(nu veți mai avea nevoie de ea, durata de viață a fișierului a expirat)

Deoarece nu puteți utiliza o bază de date sau alte mijloace de stocare a informațiilor, toate informațiile trebuie să fie stocate în legătură. Noi facem asta







1) creați o cheie de criptare - care depinde exact de tipul de criptare

2) creați o altă linie secretă pentru semnătură

Înainte pentru fiecare legătură

1) luăm legătura este o linie

2) criptați-l cu o cheie secretă. Luăm șirul o dată.

4) îmbinați ambele linii, luați md5 (sau sha1) de la acestea, apoi adăugați un șir secret pentru semnătură și din nou luați md5

Primim șirul - semnătura.

Creăm un link temporar la script, principalul lucru din URL este să treci șirul o dată, linia doi și semnătura.

Scriem un script care primește parametrii $ _GET - o legătură criptată, un timp criptat și o semnătură din n 4).

Mai întâi verificăm dacă semnătura este corectă - dacă nu este returnată nicio eroare.

Apoi decodificăm timpul și verificăm că timpul nu a trecut.

Și numai atunci, dacă totul este în regulă, decriptați adresa URL și aruncăm datele fișierului prin script - ca și cum l-am da să se descarce.

Dacă doriți să fie mai simplu, puteți cripta baza64 și baza de timp64 și sperăm doar pentru semnătura md5. În acest caz, linia secretă 1) nu este necesară.







Articole similare

Trimiteți-le prietenilor: