
Řešení problému: Upload dat a následné stažení po zadání hesla (PHP)
Ahoj,
jak řešit následující?
Chci nahrát na server soubor (třeba pdfko) - třeba do adresáře upload. Pdfko dostane svoje ID.
Nechci aby ten soubor stáhl někdo cizí - pouze po zadání hesla.
Jak to vyřešit?
Když v htaccess zakážu přístup do složky upload můžu se tam pak nalinkovat přes <a href="upload/moje.pdf">?
Pak půjdu na stránku, kde zadám id a heslo a ono mi to soubor stáhne..
Velikost souboru bude různá (malá, i velká až 500mb).
Máš k dispozici databázi?
ANO:
Pak generuj heslo vázané na soubor.
Můžeš použít PHP fci FLUSH. k "vyprsknutí" souboru uživateli.
NE:
Pak použij třeba timestamp (jako heslo) souboru, opět s fcí flush (viz výše).
Takto jsem to dělával já. Netvrdím, že mám dopr*ele patent na rozum.
Jen jsem dneska pořádně naštvaný.
Díky za odpověď, ale pořád to nechápu jak zajistím to, aby si někdo neotevřel přímo link?
Ffff !
NIKDE NEBUDE LINK.
Volat se bude skript, který si ověří heslo.
Když bude heslo odpovidat, tak funkce flush pošle na výstup příslušný soubor.
Samozřejmě je blbost předávat heslo např. přes parametry GET v url.
No, třeba já jsem použil ke konstrukci URL JavaScript na pozadí.
Tento způsob je sice stále "prolomitelný", ale uživatel už musí znát to heslo a pravá ruka musí vědět, co dělá levá.
Tudíž to považuji za dostatečně bezpečné pro většinu praktických situací.
No a za chvilku du do kina na Spectre. Snad mě tam opustí dnešní zlost.
Už to chápu. Mohl bys mi ještě ukázat jak funguje flush pro soubor? Nenašel jsem žádný vhodný exampl pro soubor. Kino si užij :)
Jo. To, co jsem uváděl (flush) je asi vhodné jen pro dynamicky vytvářené soubory.
Pro čtení existujících je asi vhodnější HEADER.
Vyzkoušej si to. Tam bude potřeba nastavit vhodný Content-Type.
Jinak to Spectre je konina. Má to pomalé tempo a nejasnosti. Nuda.
Paráda, funguje jak má, děkuji.