Forum Pplware
Acesso negado - 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: Acesso negado (/showthread.php?tid=9826)



Acesso negado - Wanber - 28-09-2011 21:14

Olá, queria saber como faço pra negar acesso a um arquivo quando o usuário digitar o caminho completo no navegador, o usuário só terá acesso ao arquivo quando clicar em download em uma página por exemplo.


RE: Acesso negado - progster - 28-09-2011 21:25

Boa noite.

Explica melhor.

Cumprimentos.


RE: Acesso negado - Bruno Bernardino - 28-09-2011 21:57

A forma mais fácil será colocar o ficheiro fora da raíz do site e fazer download utilizando PHP, por exemplo.

Um exemplo do ficheiro PHP será este: http://pplware.sapo.pt/tutoriais/php-e-a-quinta-feira-download-de-um-ficheiro/


RE: Acesso negado - brunoantunes - 30-09-2011 12:00

Citar:The user will be blocked from entering the following into the Internet Explorer Address Bar:

--- A UNC path: \\<server>\<share>

---Accessing local drives: e.g., C:

--- Accessing local folders: e.g., \temp>

E' isto que queres bloquear??
Assumindo que estamos a falar de Windows, tens duas formas: registo e politicas de grupo.

Ve este site que te diz como fazer.
Basicamente e' desactivar a opcao "executar".


RE: Acesso negado - Wanber - 30-09-2011 17:53

É o seguinte, tenho a pasta downloads e dentro dela tenho o arquivo 1.0.zip, eu queria que quando a pessoa digitasse: http://SITE/donwloads/1.0.zip não desse pra fazer download do arquivo, so desse pra fazer o download se ele vier de uma página determinada dentro do servidor (ex: http://SITE/donwload_1.0.php)


RE: Acesso negado - Bruno Bernardino - 30-09-2011 17:58

Então a tua solução é exactamente a que indiquei em cima.


RE: Acesso negado - Wanber - 01-10-2011 11:28

(30-09-2011 17:58)Bruno Bernardino Escreveu:  Então a tua solução é exactamente a que indiquei em cima.

Usei o seguinte código encontrado na página que você passou:

<?php

$file = "download/1.0.zip";
$attachment_name = "versão_1.0_shaman_cms.zip";

$file_extension = strtolower(substr(strrchr($file,"."),1));
$ext = substr(strrchr($file,"."),1);

switch( $file_extension ) {
case "pdf": $ctype="application/pdf"; break;
case "exe": $ctype="application/octet-stream"; break;
case "zip": $ctype="application/zip"; break;
case "odt": $ctype="application/vnd.oasis.opendocument.text";break;
case "doc": $ctype="application/msword"; break;
case "ods": $ctype="application/vnd.oasis.opendocument.spreadsheet";break;
case "xls": $ctype="application/vnd.ms-excel"; break;
case "odp": $ctype="application/vnd.oasis.opendocument.presentation";break;
case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "mp3": $ctype="audio/mpeg3";break;
case "wav": $ctype="audio/wav";break;
case "mpeg":
case "mpg": $ctype="video/mpeg";break;
case "avi": $ctype="video/avi";break;
case "jpeg":
case "jpg": $ctype="image/jpg"; break;
default: $ctype="application/force-download";
}

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Type: ".$ctype."");
header("Content-Disposition: attachment; filename=\"".$attachment_name."\";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($file));
readfile($file);
exit();

echo '$attachment_name';
?>


OBS: adicionei: echo '$attachment_name'; pra começar o download quando carregar a página e coloquei o arquivo .htaccess dentro da pasta downloads, para negar o acesso aos arquivos se for acessado diretamente, configurado assim:

deny from all
IndexIgnore *

Obrigado.