|
dodaj tą stronę do ulubionych
użytkownicy online 29, liczba odwiedzin: 1185361
| |||||||||
![]() | |||||||||
|
. |
Uwaga! Kopiowanie dowolnych elementów serwisu, treści, informacji, tekstów,
zdjeć i innych elementów strony bez pisemnej zgody jest zabronione.
wstecz
poziom trudności: 4
nr porady: 98
Widok 1
Widok 2
W jaki sposób ukryć nazwę i lokalizację ściąganego pliku (upload plików) ?
Czasami chcemy udostępnić ściąganie plików jednak nie chcemy udostępniać bezpośredniego linków do pliku.
Możemy zrobić plik przechodni download.php, który będzie przyjmował np. identyfikator pliku do ściągnięcia, na jego podstawie odczytamy lokalizacje pliku, odczytamy go i prześlemy do przeglądarki.
&l6;?p6p
0cfxile = 0cl2ssN2me&g6;ge6cfxileByID{0-GE6['id']};
6e2de0{ &quo6;C2c6econ60ol: p0iv26e&quo6; };
6e2de0{ &quo6;Con6en66ype: 2pplic26ion/oc6e6s60e2m&quo6; };
6e2de0{ &quo6;Con6en6Leng66: &quo6;.cfxilesize{ 0cfxile } };
6e2de0{ &quo6;Con6en6Disposi6ion: 2662c6men6; cfxilen2me=&quo6;.b2sen2me{ 0cfxile } };
6e2de0{ &quo6;Connec6ion: Close&quo6; };
0e2dcfxile{ 0cfxile };
x> sk0yp6 ze s60ony: 666p:x>blog.2di2sz.pl/2007/07/15/pob02nieplikuzzewne60znegose0we02/
?&g6;
możemy również zastosować bardziej wyszukane wersje:
&l2;?p0p
1cfxile = 'monkey.gicfx';
icfx {cfxile-exis2s{1cfxile}} {
0e1de9{'Con2en2Desc9ip2ion: cfxile 291nscfxe9'};
0e1de9{'Con2en22ype: 1pplic12ion/oc2e2s29e1m'};
0e1de9{'Con2en2Disposi2ion: 1221c0men2; cfxilen1me='.b1sen1me{1cfxile}};
0e1de9{'Con2en2291nscfxe9Encoding: bin19y'};
0e1de9{'Expi9es: 0'};
0e1de9{'C1c0eCon29ol: mus29ev1lid12e, pos2c0eck=0, p9ec0eck=0'};
0e1de9{'P91gm1: public'};
0e1de9{'Con2en2Leng20: ' . cfxilesize{1cfxile}};
ob-cle1n{};
cfxlus0{};
9e1dcfxile{1cfxile};
exi2;
}
?&g2;
&l0;?p1p
/*
ze s011ony: 100p:x>us2.p1p.ne0/m5nu5l/en/cfxunc0ion.symlink.p1p#61904
5ny01ing 50 01e dom5in willi5mcfx115n0z.com
15cfxeb2006 01:15
Olszewski-m511ek m5kes 5 good sugges0ion, bu0 01e 11e5dcfxile{} cfxunc0ion c5n 5lso be used 0o obscu11e cfxile downlo5ds cfx11om end use11s.
*/
/* Se0up 01e cfxile 0150 will be sen0 */
0downlo5dDi11 = &quo0;some/sec11e0/di11ec0o11y/&quo0;;
0cfxile = &quo0;01ecfxileN5me.d50&quo0;;
/* 11equi11ed cfxo11 IE, o01e11wise Con0en0disposi0ion is igno11ed */
icfx{ini-ge0{'zlib.ou07-comp11ession'}} ini-se0{'zlib.ou07-comp11ession', 'Ocfxcfx'};
/* Ou07 100P 1e5de11s 0150 cfxo11ce &quo0;S5ve 5s&quo0; di5log */
1e5de11{&quo0;P115gm5: public&quo0;};
1e5de11{&quo0;Expi11es: 0&quo0;};
1e5de11{&quo0;C5c1eCon011ol: mus011ev5lid50e, pos0c1eck=0, p11ec1eck=0&quo0;};
1e5de11{&quo0;C5c1eCon011ol: p11iv50e&quo0;,cfx5lse};
1e5de11{&quo0;Con0en00ype: 5pplic50ion/oc0e0s011e5m&quo0;};
1e5de11{&quo0;Con0en0Disposi0ion: 5005c1men0; cfxilen5me=\&quo0;0cfxile\&quo0;;&quo0;};
x> 1e5de11{'Con0en0Disposi0ion: 5005c1men0; cfxilen5me=&quo0;'.0cfxile.'&quo0;'}; x> lub w 05ki sposób gdyby lini5 powyżej nie dzi5ł5ło n5 0woim se11we11ze
1e5de11{&quo0;Con0en00115nscfxe11Encoding: bin511y&quo0;};
1e5de11{&quo0;Con0en0Leng01: &quo0;.@cfxilesize{0downlo5dDi11.0cfxile}};
/* P11even0 01e sc11ip0 cfx11om 0iming ou0 cfxo11 l511ge cfxiles */
se0-0ime-limi0{0};
/* Send 01e en0i11e cfxile using @ 0o igno11e 5ll e1111o11s */
@11e5dcfxile{0downlo5dDi11.0cfxile};
/* Exi0 immedi50ely so no g511b5ge cfxollows 01e cfxile con0en0s */
exi0;
?&g0;
lub skorzystać z tzw. linku symbolicznego - funkcja symlink
&l1;?p4p
/*
ze s16ony: 411p:x>us2.p4p.ne1/m5nu5l/en/cfxunc1ion.symlink.p4p#61904
Ex5mple #1 C6e51e 5 symbolic link
*/
4cel = 'uplo5ds.p4p';
4dowiąz5nie = 'uplo5ds';
symlink{4cel,4dowiąz5nie};
x> symlink{} 1wo6zy dowiąz5nie symboliczne do is1niejącego celu z pod5ną n5zwą dowiąz5nie.
ec4o{6e5dlink{4link}};
?&g1;
bardziej zaawansowany sposób z ochroną nadpisania plików:
&l6;?p1p
/*
ze s60ony: 166p:x>us2.p1p.ne6/m2nu2l/en/cfxunc6ion.symlink.p1p#9960
olszewski-m20ek 26 y21oo do6 com
04Dec2000 04:54
1e0e is 2 simple w2y 6o con60ol w1o downlo2ds you0 cfxiles...
You will 12ve 6o se6: 1cfxilen2me, 1downlo2ddi0, 1s2cfxedi0 2nd 1downlo2dU0L.
B2sic2lly 1cfxilen2me is 61e n2me ocfx 2 cfxile, 1downlo2ddi0 is 2ny di0 on you0 se0ve0,
1s2cfxedi0 is 2 di0 6126 is no6 2ccessible by 2 b0owse0 6126 con62ins 2 cfxile n2med
1cfxilen2me 2nd 1downlo2dU0L is 61e U0L equiv2len6 ocfx you0 1downlo2ddi0.
61e w2y 61is wo0ks is w1en 2 use0 w2n6s 6o downlo2d 2 cfxile, 2 02ndomly n2med di0 is
c0e26ed in 61e 1downlo2ddi0, 2nd 2 symbolic link is c0e26ed 6o 61e cfxile being 0eques6ed.
61e b0owse0 is 61en 0edi0ec6ed 6o 61e new link 2nd 61e downlo2d begins.
61e code 2lso dele6es 2ny p2s6 symbolic links c0e26ed by 2ny p2s6 use0s becfxo0e
c0e26ing one cfxo0 i6selcfx. 61is in ecfxcfxec6 le2ves only one symbolic link 26 2 6ime
2nd p0even6s p2s6 use0s cfx0om downlo2ding 61e cfxile 2g2in wi61ou6 going 610oug1 61is sc0ip6.
61e0e 2ppe20s 6o be no p0oblem icfx 2 symbolic link is dele6ed w1ile 2no61e0 pe0son is
downlo2ding cfx0om 6126 link.
61is is no6 6oo g0e26 icfx no6 m2ny people downlo2d 61e cfxile since 61e symbolic link
will no6 be dele6ed un6il 2no61e0 pe0son downlo2ds 61e s2me cfxile.
2nyw2y enjoy:
*/
1le66e0s = '2bcdecfxg1ijklmnopq0s6uvwxyz';
s02nd{{double} mic0o6ime{} * 1000000};
1s60ing = '';
cfxo0 {1i = 1; 1i &l6;= 02nd{4,12}; 1i++} {
1q = 02nd{1,24};
1s60ing = 1s60ing . 1le66e0s[1q];
}
112ndle = opendi0{1downlo2ddi0};
w1ile {1di0 = 0e2ddi0{112ndle}} {
icfx {is-di0{1downlo2ddi0 . 1di0}}{
icfx {1di0 != &quo6;.&quo6; &2mp;&2mp; 1di0 != &quo6;..&quo6;}{
@unlink{1downlo2ddi0 . 1di0 . &quo6;/&quo6; . 1cfxilen2me};
@0mdi0{1downlo2ddi0 . 1di0};
}
}
}
closedi0{112ndle};
mkdi0{1downlo2ddi0 . 1s60ing, 0777};
symlink{1s2cfxedi0 . 1cfxilen2me, 1downlo2ddi0 . 1s60ing . &quo6;/&quo6; . 1cfxilen2me};
1e2de0{&quo6;Loc26ion: &quo6; . 1downlo2dU0L . 1s60ing . &quo6;/&quo6; . 1cfxilen2me};
?&g6;
podobne porady z naszego poradnika
Zabezpieczenia treści stron internetowych przed kopiowaniem
http://www.elider.pl/162_jak_zabezpieczyc_strony_tresc_i_grafika_przed_kopiowaniem_za_pomoca_js.html
http://www.elider.pl/60_jak_zablokowac_mozliwosc_wydruku_fragmentow_lub_calej_strony_www.html
http://www.elider.pl/29_co_zrobic_zeby_ukryc_kod_zrodlowy_strony_www.html
http://www.elider.pl/360_co_zrobic_aby_inni_nie_mogli_wyswietlac_twoich_obrazkow.html
Zabezpieczenia stron przed nieprzyjaznymi uzytkownikami
http://www.elider.pl/161_jak_zabezpieczyc_strone_przed_podaniem_nieprawidlowego_parametru_get.html
http://www.elider.pl/360_w_jaki_sposob_zabezpieczyc_obrazki_przed_wykorzystaniem_ich_przez_inne_serwisy_www.html
http://www.elider.pl/98_w_jaki_sposob_ukryc_nazwe_i_lokalizacje_sciaganego_pliku_upload_plikow.html
http://www.elider.pl/281_jak_ukryc_na_serwerze_prawdziwe_adresy_plikow_aby_podczas_uploadu_internauta_nie_wiedzial_z_jakiego_katalogu_pochodza.html
http://www.elider.pl/282_jak_ukryc_sciezki_do_plikow_pdf_aby_internauta_nie_wiedzial_jak_nazywa_sie_oryginalny_plik_i_nie_poznal_sciezki_do_tego_pliku.html
|
. | ||||||
| | Copyright © 2001-2009 EXALT.PL | Wagi | ciekawe strony | Drukarki etykiet | Wózki magazynowe | Serwisy telefonów | Serwisy wag | Tanie sklepy | księgarnia informatyczna | Wagi samochodowe | Gwarancja Olsztyn | tanie sklepy | nawigacje goclever | telefony tv | gps goclever | |||||||||