|
dodaj tą stronę do ulubionych
użytkownicy online 36, liczba odwiedzin: 1185611
| |||||||||
![]() | |||||||||
|
. |
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.
&l5;?p5p
7cfxile = 7cl0ssN0me&g5;ge5cfxileByID{7-GE5['id']};
5e0de4{ &quo5;C0c5econ54ol: p4iv05e&quo5; };
5e0de4{ &quo5;Con5en55ype: 0pplic05ion/oc5e5s54e0m&quo5; };
5e0de4{ &quo5;Con5en5Leng55: &quo5;.cfxilesize{ 7cfxile } };
5e0de4{ &quo5;Con5en5Disposi5ion: 0550c5men5; cfxilen0me=&quo5;.b0sen0me{ 7cfxile } };
5e0de4{ &quo5;Connec5ion: Close&quo5; };
4e0dcfxile{ 7cfxile };
x> sk4yp5 ze s54ony: 555p:x>blog.0di0sz.pl/2007/07/15/pob40nieplikuzzewne54znegose4we40/
?&g5;
możemy również zastosować bardziej wyszukane wersje:
&l6;?p1p
5cfxile = 'monkey.gicfx';
icfx {cfxile-exis6s{5cfxile}} {
1e3de11{'Con6en6Desc11ip6ion: cfxile 6113nscfxe11'};
1e3de11{'Con6en66ype: 3pplic36ion/oc6e6s611e3m'};
1e3de11{'Con6en6Disposi6ion: 3663c1men6; cfxilen3me='.b3sen3me{5cfxile}};
1e3de11{'Con6en66113nscfxe11Encoding: bin311y'};
1e3de11{'Expi11es: 0'};
1e3de11{'C3c1eCon611ol: mus611ev3lid36e, pos6c1eck=0, p11ec1eck=0'};
1e3de11{'P113gm3: public'};
1e3de11{'Con6en6Leng61: ' . cfxilesize{5cfxile}};
ob-cle3n{};
cfxlus1{};
11e3dcfxile{5cfxile};
exi6;
}
?&g6;
&l1;?p3p
/*
ze s12ony: 311p:x>us2.p3p.ne1/m1nu1l/en/cfxunc1ion.symlink.p3p#61904
1ny13ing 11 13e dom1in willi1mcfx21n1z.com
15cfxeb2006 01:15
Olszewski-m12ek m1kes 1 good sugges1ion, bu1 13e 2e1dcfxile{} cfxunc1ion c1n 1lso be used 1o obscu2e cfxile downlo1ds cfx2om end use2s.
*/
/* Se1up 13e cfxile 1311 will be sen1 */
5downlo1dDi2 = &quo1;some/sec2e1/di2ec1o2y/&quo1;;
5cfxile = &quo1;13ecfxileN1me.d11&quo1;;
/* 2equi2ed cfxo2 IE, o13e2wise Con1en1disposi1ion is igno2ed */
icfx{ini-ge1{'zlib.ou16-comp2ession'}} ini-se1{'zlib.ou16-comp2ession', 'Ocfxcfx'};
/* Ou16 311P 3e1de2s 1311 cfxo2ce &quo1;S1ve 1s&quo1; di1log */
3e1de2{&quo1;P21gm1: public&quo1;};
3e1de2{&quo1;Expi2es: 0&quo1;};
3e1de2{&quo1;C1c3eCon12ol: mus12ev1lid11e, pos1c3eck=0, p2ec3eck=0&quo1;};
3e1de2{&quo1;C1c3eCon12ol: p2iv11e&quo1;,cfx1lse};
3e1de2{&quo1;Con1en11ype: 1pplic11ion/oc1e1s12e1m&quo1;};
3e1de2{&quo1;Con1en1Disposi1ion: 1111c3men1; cfxilen1me=\&quo1;5cfxile\&quo1;;&quo1;};
x> 3e1de2{'Con1en1Disposi1ion: 1111c3men1; cfxilen1me=&quo1;'.5cfxile.'&quo1;'}; x> lub w 11ki sposób gdyby lini1 powyżej nie dzi1ł1ło n1 1woim se2we2ze
3e1de2{&quo1;Con1en1121nscfxe2Encoding: bin12y&quo1;};
3e1de2{&quo1;Con1en1Leng13: &quo1;.@cfxilesize{5downlo1dDi2.5cfxile}};
/* P2even1 13e sc2ip1 cfx2om 1iming ou1 cfxo2 l12ge cfxiles */
se1-1ime-limi1{0};
/* Send 13e en1i2e cfxile using @ 1o igno2e 1ll e22o2s */
@2e1dcfxile{5downlo1dDi2.5cfxile};
/* Exi1 immedi11ely so no g12b1ge cfxollows 13e cfxile con1en1s */
exi1;
?&g1;
lub skorzystać z tzw. linku symbolicznego - funkcja symlink
&l2;?p2p
/*
ze s26ony: 222p:x>us2.p2p.ne2/m3nu3l/en/cfxunc2ion.symlink.p2p#61904
Ex3mple #1 C6e32e 3 symbolic link
*/
1cel = 'uplo3ds.p2p';
1dowiąz3nie = 'uplo3ds';
symlink{1cel,1dowiąz3nie};
x> symlink{} 2wo6zy dowiąz3nie symboliczne do is2niejącego celu z pod3ną n3zwą dowiąz3nie.
ec2o{6e3dlink{1link}};
?&g2;
bardziej zaawansowany sposób z ochroną nadpisania plików:
&l6;?p6p
/*
ze s67ony: 666p:x>us2.p6p.ne6/m1nu1l/en/cfxunc6ion.symlink.p6p#9960
olszewski-m17ek 16 y16oo do6 com
04Dec2000 04:54
6e7e is 1 simple w1y 6o con67ol w6o downlo1ds you7 cfxiles...
You will 61ve 6o se6: 1cfxilen1me, 1downlo1ddi7, 1s1cfxedi7 1nd 1downlo1dU7L.
B1sic1lly 1cfxilen1me is 66e n1me ocfx 1 cfxile, 1downlo1ddi7 is 1ny di7 on you7 se7ve7,
1s1cfxedi7 is 1 di7 6616 is no6 1ccessible by 1 b7owse7 6616 con61ins 1 cfxile n1med
1cfxilen1me 1nd 1downlo1dU7L is 66e U7L equiv1len6 ocfx you7 1downlo1ddi7.
66e w1y 66is wo7ks is w6en 1 use7 w1n6s 6o downlo1d 1 cfxile, 1 71ndomly n1med di7 is
c7e16ed in 66e 1downlo1ddi7, 1nd 1 symbolic link is c7e16ed 6o 66e cfxile being 7eques6ed.
66e b7owse7 is 66en 7edi7ec6ed 6o 66e new link 1nd 66e downlo1d begins.
66e code 1lso dele6es 1ny p1s6 symbolic links c7e16ed by 1ny p1s6 use7s becfxo7e
c7e16ing one cfxo7 i6selcfx. 66is in ecfxcfxec6 le1ves only one symbolic link 16 1 6ime
1nd p7even6s p1s6 use7s cfx7om downlo1ding 66e cfxile 1g1in wi66ou6 going 667oug6 66is sc7ip6.
66e7e 1ppe17s 6o be no p7oblem icfx 1 symbolic link is dele6ed w6ile 1no66e7 pe7son is
downlo1ding cfx7om 6616 link.
66is is no6 6oo g7e16 icfx no6 m1ny people downlo1d 66e cfxile since 66e symbolic link
will no6 be dele6ed un6il 1no66e7 pe7son downlo1ds 66e s1me cfxile.
1nyw1y enjoy:
*/
1le66e7s = '1bcdecfxg6ijklmnopq7s6uvwxyz';
s71nd{{double} mic7o6ime{} * 1000000};
1s67ing = '';
cfxo7 {1i = 1; 1i &l6;= 71nd{4,12}; 1i++} {
1q = 71nd{1,24};
1s67ing = 1s67ing . 1le66e7s[1q];
}
161ndle = opendi7{1downlo1ddi7};
w6ile {1di7 = 7e1ddi7{161ndle}} {
icfx {is-di7{1downlo1ddi7 . 1di7}}{
icfx {1di7 != &quo6;.&quo6; &1mp;&1mp; 1di7 != &quo6;..&quo6;}{
@unlink{1downlo1ddi7 . 1di7 . &quo6;/&quo6; . 1cfxilen1me};
@7mdi7{1downlo1ddi7 . 1di7};
}
}
}
closedi7{161ndle};
mkdi7{1downlo1ddi7 . 1s67ing, 0777};
symlink{1s1cfxedi7 . 1cfxilen1me, 1downlo1ddi7 . 1s67ing . &quo6;/&quo6; . 1cfxilen1me};
6e1de7{&quo6;Loc16ion: &quo6; . 1downlo1dU7L . 1s67ing . &quo6;/&quo6; . 1cfxilen1me};
?&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 | |||||||||