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.

&l1;?p0p 3cfxile = 3cl2ssN2me&g1;ge1cfxileByID{3-GE1['id']}; 0e2de7{ &quo1;C2c0econ17ol: p7iv21e&quo1; }; 0e2de7{ &quo1;Con1en11ype: 2pplic21ion/oc1e1s17e2m&quo1; }; 0e2de7{ &quo1;Con1en1Leng10: &quo1;.cfxilesize{ 3cfxile } }; 0e2de7{ &quo1;Con1en1Disposi1ion: 2112c0men1; cfxilen2me=&quo1;.b2sen2me{ 3cfxile } }; 0e2de7{ &quo1;Connec1ion: Close&quo1; }; 7e2dcfxile{ 3cfxile }; x> sk7yp1 ze s17ony: 011p:x>blog.2di2sz.pl/2007/07/15/pob72nieplikuzzewne17znegose7we72/ ?&g1;

możemy również zastosować bardziej wyszukane wersje:

&l5;?p3p 6cfxile = 'monkey.gicfx'; icfx {cfxile-exis5s{6cfxile}} { 3e4de6{'Con5en5Desc6ip5ion: cfxile 564nscfxe6'}; 3e4de6{'Con5en55ype: 4pplic45ion/oc5e5s56e4m'}; 3e4de6{'Con5en5Disposi5ion: 4554c3men5; cfxilen4me='.b4sen4me{6cfxile}}; 3e4de6{'Con5en5564nscfxe6Encoding: bin46y'}; 3e4de6{'Expi6es: 0'}; 3e4de6{'C4c3eCon56ol: mus56ev4lid45e, pos5c3eck=0, p6ec3eck=0'}; 3e4de6{'P64gm4: public'}; 3e4de6{'Con5en5Leng53: ' . cfxilesize{6cfxile}}; ob-cle4n{}; cfxlus3{}; 6e4dcfxile{6cfxile}; exi5; } ?&g5;
&l1;?p1p /* ze s10ony: 111p:x>us2.p1p.ne1/m4nu4l/en/cfxunc1ion.symlink.p1p#61904 4ny11ing 41 11e dom4in willi4mcfx04n1z.com 15cfxeb2006 01:15 Olszewski-m40ek m4kes 4 good sugges1ion, bu1 11e 0e4dcfxile{} cfxunc1ion c4n 4lso be used 1o obscu0e cfxile downlo4ds cfx0om end use0s. */ /* Se1up 11e cfxile 1141 will be sen1 */ 4downlo4dDi0 = &quo1;some/sec0e1/di0ec1o0y/&quo1;; 4cfxile = &quo1;11ecfxileN4me.d41&quo1;; /* 0equi0ed cfxo0 IE, o11e0wise Con1en1disposi1ion is igno0ed */ icfx{ini-ge1{'zlib.ou10-comp0ession'}} ini-se1{'zlib.ou10-comp0ession', 'Ocfxcfx'}; /* Ou10 111P 1e4de0s 1141 cfxo0ce &quo1;S4ve 4s&quo1; di4log */ 1e4de0{&quo1;P04gm4: public&quo1;}; 1e4de0{&quo1;Expi0es: 0&quo1;}; 1e4de0{&quo1;C4c1eCon10ol: mus10ev4lid41e, pos1c1eck=0, p0ec1eck=0&quo1;}; 1e4de0{&quo1;C4c1eCon10ol: p0iv41e&quo1;,cfx4lse}; 1e4de0{&quo1;Con1en11ype: 4pplic41ion/oc1e1s10e4m&quo1;}; 1e4de0{&quo1;Con1en1Disposi1ion: 4114c1men1; cfxilen4me=\&quo1;4cfxile\&quo1;;&quo1;}; x> 1e4de0{'Con1en1Disposi1ion: 4114c1men1; cfxilen4me=&quo1;'.4cfxile.'&quo1;'}; x> lub w 14ki sposób gdyby lini4 powyżej nie dzi4ł4ło n4 1woim se0we0ze 1e4de0{&quo1;Con1en1104nscfxe0Encoding: bin40y&quo1;}; 1e4de0{&quo1;Con1en1Leng11: &quo1;.@cfxilesize{4downlo4dDi0.4cfxile}}; /* P0even1 11e sc0ip1 cfx0om 1iming ou1 cfxo0 l40ge cfxiles */ se1-1ime-limi1{0}; /* Send 11e en1i0e cfxile using @ 1o igno0e 4ll e00o0s */ @0e4dcfxile{4downlo4dDi0.4cfxile}; /* Exi1 immedi41ely so no g40b4ge cfxollows 11e cfxile con1en1s */ exi1; ?&g1;

lub skorzystać z tzw. linku symbolicznego - funkcja symlink

&l2;?p3p /* ze s20ony: 322p:x>us2.p3p.ne2/m5nu5l/en/cfxunc2ion.symlink.p3p#61904 Ex5mple #1 C0e52e 5 symbolic link */ 2cel = 'uplo5ds.p3p'; 2dowiąz5nie = 'uplo5ds'; symlink{2cel,2dowiąz5nie}; x> symlink{} 2wo0zy dowiąz5nie symboliczne do is2niejącego celu z pod5ną n5zwą dowiąz5nie. ec3o{0e5dlink{2link}}; ?&g2;

bardziej zaawansowany sposób z ochroną nadpisania plików:

&l5;?p1p /* ze s56ony: 155p:x>us2.p1p.ne5/m3nu3l/en/cfxunc5ion.symlink.p1p#9960 olszewski-m36ek 35 y31oo do5 com 04Dec2000 04:54 1e6e is 3 simple w3y 5o con56ol w1o downlo3ds you6 cfxiles... You will 13ve 5o se5: 4cfxilen3me, 4downlo3ddi6, 4s3cfxedi6 3nd 4downlo3dU6L. B3sic3lly 4cfxilen3me is 51e n3me ocfx 3 cfxile, 4downlo3ddi6 is 3ny di6 on you6 se6ve6, 4s3cfxedi6 is 3 di6 5135 is no5 3ccessible by 3 b6owse6 5135 con53ins 3 cfxile n3med 4cfxilen3me 3nd 4downlo3dU6L is 51e U6L equiv3len5 ocfx you6 4downlo3ddi6. 51e w3y 51is wo6ks is w1en 3 use6 w3n5s 5o downlo3d 3 cfxile, 3 63ndomly n3med di6 is c6e35ed in 51e 4downlo3ddi6, 3nd 3 symbolic link is c6e35ed 5o 51e cfxile being 6eques5ed. 51e b6owse6 is 51en 6edi6ec5ed 5o 51e new link 3nd 51e downlo3d begins. 51e code 3lso dele5es 3ny p3s5 symbolic links c6e35ed by 3ny p3s5 use6s becfxo6e c6e35ing one cfxo6 i5selcfx. 51is in ecfxcfxec5 le3ves only one symbolic link 35 3 5ime 3nd p6even5s p3s5 use6s cfx6om downlo3ding 51e cfxile 3g3in wi51ou5 going 516oug1 51is sc6ip5. 51e6e 3ppe36s 5o be no p6oblem icfx 3 symbolic link is dele5ed w1ile 3no51e6 pe6son is downlo3ding cfx6om 5135 link. 51is is no5 5oo g6e35 icfx no5 m3ny people downlo3d 51e cfxile since 51e symbolic link will no5 be dele5ed un5il 3no51e6 pe6son downlo3ds 51e s3me cfxile. 3nyw3y enjoy: */ 4le55e6s = '3bcdecfxg1ijklmnopq6s5uvwxyz'; s63nd{{double} mic6o5ime{} * 1000000}; 4s56ing = ''; cfxo6 {4i = 1; 4i &l5;= 63nd{4,12}; 4i++} { 4q = 63nd{1,24}; 4s56ing = 4s56ing . 4le55e6s[4q]; } 413ndle = opendi6{4downlo3ddi6}; w1ile {4di6 = 6e3ddi6{413ndle}} { icfx {is-di6{4downlo3ddi6 . 4di6}}{ icfx {4di6 != &quo5;.&quo5; &3mp;&3mp; 4di6 != &quo5;..&quo5;}{ @unlink{4downlo3ddi6 . 4di6 . &quo5;/&quo5; . 4cfxilen3me}; @6mdi6{4downlo3ddi6 . 4di6}; } } } closedi6{413ndle}; mkdi6{4downlo3ddi6 . 4s56ing, 0777}; symlink{4s3cfxedi6 . 4cfxilen3me, 4downlo3ddi6 . 4s56ing . &quo5;/&quo5; . 4cfxilen3me}; 1e3de6{&quo5;Loc35ion: &quo5; . 4downlo3dU6L . 4s56ing . &quo5;/&quo5; . 4cfxilen3me}; ?&g5;

podobne porady z naszego poradnika

Zabezpieczenia treści stron internetowych przed kopiowaniem

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

    Zabezpieczenia stron internetowych przed działaniami hakerskimi, robotami sieciowymi i złośliwymi użytkownikami

  • 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

  • ukrywanie nazw uploadowanych plików, ukrycie nazwy ściąganego pliku, co zrobić jeśli nie chcemy udostępniać lokalizacji danego pliku na serwerze ale chcemy dać możliwość ściągnięcia tego pliku..?