[PHP/JS] Download de Ficheiros - Versão de Impressão +- Forum Pplware (http://forum.pplware.com) +-- Fórum: Mais Tech (/forumdisplay.php?fid=11) +--- Fórum: Programação e Web (/forumdisplay.php?fid=16) +--- Tópico: [PHP/JS] Download de Ficheiros (/showthread.php?tid=19569) |
[PHP/JS] Download de Ficheiros - dininis - 06-07-2014 00:13 Tenho um site construído, porém existe um "pequeno" problema no que toca ao download de ficheiros... Se o ficheiro tiver o nome de "file.docx" no caminho "www.website.com/files/" basta aceder ao link "www.website.com/files/file.docx" para obter o ficheiro... Como é que posso impedir isso? O ideal seria, em vez de aceder ao ficheiro diretamente, seria aceder a um ficheiro em PHP ou JS para identificar a pessoa (sem utilizar o $_GET, porque não gosto de meter informações nos links). Nunca fiz tal coisa, e a pesquisa que fiz... meh Se poderem colocar links ou certas palavras chave paa pesquisar que me possam estar a escapar, ajudará bastante! Thanks RE: [PHP/JS] Download de Ficheiros - IAMFREEE - 06-07-2014 12:18 Bom dia, Podes criar um ficheiro .htaccess em que bloqueias o acesso à pasta files assim já ninguém faz o download a partir do nome do ficheiro no link. Se procurares no google irás encontrar muita informação sobre isto. Para usares um ficheiro php para fazeres o download do ficheiro seria algo do género: Link: http//teusite.com/download.php?file=52 Em que nesse ficheiro download.php poderias verificar se o utilizador estava autenticado a partir da $_SESSION, e terias de ter na base de dados uma tabela para associares o caminho do ficheiro a um id. Campos da tabela files na base de dados: int id, Varchar path Supondo que tens a linha na base de dados: id: 52 path: "files/file.docx" No php, irias obter o path a partir do id que receber no $_GET e forçavas o download do ficheiro (files/file.docx) forçando os headers da resposta. Mais info: http://stackoverflow.com/questions/8485886/force-file-download-with-php-using-header Cumprimentos RE: [PHP/JS] Download de Ficheiros - dininis - 06-07-2014 15:58 (06-07-2014 12:18)IAMFREEE Escreveu: Link: http//teusite.com/download.php?file=52Mas se o utilizador tiver acesso a esse link, não terá acesso à pasta toda? ?file=52 Base de Dados devolve "files/file.docx" Script PHP manda fazer download do ficheiro "http//teusite.com/files/file.docx" Ou seja, se o utilizador meter mão no link "http//teusite.com/files/" apanha tudo o que é ficheiro, estando ou não autenticado. (a menos que não haja forma de não aceder ao ficheiro "index" da pasta). Certo? RE: [PHP/JS] Download de Ficheiros - IAMFREEE - 06-07-2014 23:19 (06-07-2014 15:58)dininis Escreveu: Ou seja, se o utilizador meter mão no link "http//teusite.com/files/" apanha tudo o que é ficheiro, estando ou não autenticado. (a menos que não haja forma de não aceder ao ficheiro "index" da pasta). Certo? Caso uses um ficheiro .htaccess na pasta files com por exemplo: Código: Options -Indexes Procura mais informação como bloquear acessos a directorias/ficheiros no htaccess. RE: [PHP/JS] Download de Ficheiros - dininis - 08-07-2014 20:33 (06-07-2014 23:19)IAMFREEE Escreveu:não querendo, de forma alguma, abusar da sua disponibilidade, existe forma de, em vez de mostrar o erro 403 (não tem acesso), mostrar um erro 404 (ficheiro inexistente)? Isto é, sem recorrer a qualquer tipo de redireccionamento (o que modifica o link que o "utilizador" colocou no browser, indicando ao mesmo que o ficheiro, existe mesmo).(06-07-2014 15:58)dininis Escreveu: Ou seja, se o utilizador meter mão no link "http//teusite.com/files/" apanha tudo o que é ficheiro, estando ou não autenticado. (a menos que não haja forma de não aceder ao ficheiro "index" da pasta). Certo? RE: [PHP/JS] Download de Ficheiros - IAMFREEE - 09-07-2014 22:16 (08-07-2014 20:33)dininis Escreveu:(06-07-2014 23:19)IAMFREEE Escreveu:não querendo, de forma alguma, abusar da sua disponibilidade, existe forma de, em vez de mostrar o erro 403 (não tem acesso), mostrar um erro 404 (ficheiro inexistente)? Isto é, sem recorrer a qualquer tipo de redireccionamento (o que modifica o link que o "utilizador" colocou no browser, indicando ao mesmo que o ficheiro, existe mesmo).(06-07-2014 15:58)dininis Escreveu: Ou seja, se o utilizador meter mão no link "http//teusite.com/files/" apanha tudo o que é ficheiro, estando ou não autenticado. (a menos que não haja forma de não aceder ao ficheiro "index" da pasta). Certo? Sim apensas usando o .htaccess., basta pesquisares no google sobre o assunto e logo encontrarás. |