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