source

http를 통한 파일에 대한 직접 액세스를 차단하지만 php 스크립트 액세스를 허용합니다.

factcode 2022. 11. 15. 21:31
반응형

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,.htaccessfiles.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

반응형