http를 통한 파일에 대한 직접 액세스를 차단하지만 php 스크립트 액세스를 허용합니다.
파일(pdf, doc, flv 등)을 버퍼에 로드하고 스크립트를 사용하여 사용자에게 제공합니다.파일에 액세스 할 수 있지만, 직접 액세스 할 수 없는 스크립트가 필요합니다.이것을 실현하는 가장 좋은 방법은 무엇입니까?내 권한으로 작업을 해야 하나요? 아니면 .htaccess로 디렉토리를 잠가야 하나요?
가장 안전한 방법은 Damien의 제안처럼 웹 루트 디렉토리 외부에 보관하는 것입니다.이는 웹 서버가 자체 권한이 아닌 로컬 파일 시스템 권한을 따르기 때문에 작동합니다.
그러나 웹 루트에만 액세스할 수 있는 호스팅 회사가 많습니다.파일에 대한 HTTP 요청을 계속 방지하려면 모든 통신을 차단하는 .htaccess 파일을 사용하여 파일에 HTTP 요청을 직접 저장합니다.예를들면,
Order deny,allow
Deny from all
디렉토리의 로컬 권한으로 웹 서버가 파일을 읽고 실행할 수 있으므로 웹 서버, 즉 서버 측 언어를 읽을 수 있습니다.
이렇게 해서 URL에서 ini 파일로 직접 접속할 수 없게 되었습니다.다음 코드를 붙여넣습니다..htaccess
파일을 루트에 보관합니다.(추가 폴더 작성 불필요)
<Files ~ "\.ini$">
Order allow,deny
Deny from all
</Files>
나의settings.ini
파일은 루트에 있으며 이 코드가 없으면 www.mydomain.com/settings.ini에 접속할 수 있습니다.
httpd.conf에서 브라우저를 차단하고 파일(특히 db.inc 또는 config.inc 등)에 대한 액세스를 wget으로 설정합니다.여러 개의 파일 디렉티브를 작성하는 대신 명령어로 파일유형을 체인할 수 없습니다.
<Files ~ "\.inc$">
Order allow,deny
Deny from all
</Files>
Apache를 재시작하기 전에 구성을 테스트합니다.
service httpd configtest
그 후(재기동 필요)
service httpd graceful
파일은 PHP 스크립트와 같은 서버에 있습니까?그렇다면 파일을 웹 루트에 넣지 말고 PHP 스크립트에 저장된 위치에 대한 읽기 권한이 있는지 확인하십시오.
httpd.conf 파일에 액세스할 수 있는 경우(ubuntu의 경우 /etc/apache2 디렉토리에 있음),.htaccess
파일을 특정 디렉토리에 저장합니다.즉, (예를 들어)
ServerName YOURSERVERNAMEHERE
<Directory /var/www/>
AllowOverride None
order deny,allow
Options -Indexes FollowSymLinks
</Directory>
정보를 제어하는 모든 디렉토리에 대해 이 작업을 수행하면 모든 액세스를 관리하기 위한 파일이 한 곳에 하나씩 있습니다.위의 예에서 루트 디렉토리 /var/www에 대해 실행했습니다.
이 옵션은 아웃소싱 호스팅(특히 공유 호스팅)에서는 사용할 수 없습니다. 이 개의 ,, many, 이, 이, 이, 이, 이, but, but, but, but, but, but, but, but, but, but, but, but, but, but, but, but, but, , but, but,.htaccess
files.complete files files files files files files files files.
.ini 파일의 웹 액세스를 방지하려면 다음 항목을 apache2.conf에 입력합니다.
<Files ~ "\.ini$">
Order allow,deny
Deny from all
</Files>
커스텀 모듈 기반의 .htaccess 스크립트(CodeIgniter에서 사용되는 스크립트)는 어떻습니까?시도해보니 CodeIgniter 앱에서 잘 작동했어요.다른 앱에서 사용할 수 있는 아이디어가 있나요?
<IfModule authz_core_module>
Require all denied
</IfModule>
<IfModule !authz_core_module>
Deny from all
</IfModule>
언급URL : https://stackoverflow.com/questions/2679524/block-direct-access-to-a-file-over-http-but-allow-php-script-access
'source' 카테고리의 다른 글
MySQL 및 Maria에서 상호 호환되는 가비지 문자열 함수를 생성하는 동안 오류가 발생했습니다.DB (0) | 2022.11.15 |
---|---|
Composer - 요청된 PHP 확장 mbstring이 시스템에 없습니다. (0) | 2022.11.15 |
java.io의 자바에서의 mkdir()와 mkdirs()의 차이.파일 (0) | 2022.11.15 |
Python 클래스가 개체를 상속하는 이유는 무엇입니까? (0) | 2022.11.15 |
URL에서 base64로 인코딩된 문자열 전달 (0) | 2022.11.15 |