10가지 유용한 htaccess 코드 조각 및 해킹
게시 됨: 2020-09-10.htaccess
는 모든 웹 관리자가 알고 이해해야 하는 하나의 파일입니다. 기본 수준에서 사이트 디렉토리에 대한 액세스를 제어합니다. 그러나 이 게시물의 스니펫에서 보여주듯이 할 수 있는 것보다 훨씬 더 많은 것이 있습니다.
.htaccess
의 기본 사항을 배우고 싶다면 .htaccess 소개 문서를 확인해야 합니다. 이 문서는 시작하고 실행하는 데 필요한 모든 것을 잘 설명합니다.
또한 이러한 유용한 WordPress SQL 쿼리 스니펫 또는 WordPress를 고객에게 친숙하게 만드는 이러한 스니펫을 좋아할 수도 있습니다.
1. 파일 및 디렉토리에 대한 액세스 제어
비밀번호 보호도 중요하지만 때로는 사용자가 특정 파일이나 디렉토리에 액세스하는 옵션을 완전히 차단해야 할 수도 있습니다. 이는 일반적으로 응용 프로그램이 액세스해야 하지만 권한이 필요한 사용자는 없는 includes
폴더와 같은 시스템 폴더에서 발생합니다.
이렇게 하려면 이 코드를 .htaccess
파일에 붙여넣고 디렉터리에 놓습니다.
그러나 이렇게 하면 귀하를 포함한 모든 사람의 액세스가 차단됩니다. 자신에게 액세스 권한을 부여하려면 IP 주소를 지정해야 합니다. 코드는 다음과 같습니다.
xxx.xxx.xxx.xxx
는 귀하의 IP입니다. 예를 들어 마지막 세 자리를 0/12
로 바꾸면 동일한 네트워크 내의 IP 범위가 지정되므로 허용된 모든 IP를 개별적으로 나열해야 하는 수고를 덜 수 있습니다.
.htaccess
자체를 포함하여 특정 파일에 대한 액세스를 차단하려면 대신 다음 스니펫을 사용하세요.
마찬가지로 주어진 IP를 허용하려면 allow from
을 사용하여 나열합니다.
특정 파일 형식에 대한 액세스를 차단하려면 다음을 대신 사용하세요.
2. 디렉토리 브라우징 비활성화
디렉토리 탐색을 방지하려면 다음을 추가하십시오.
그러나 어떤 이유로 디렉토리 탐색을 활성화하려면 다음으로 변경하십시오.
3. 파일 압축을 통한 로딩 시간 단축
이미지뿐만 아니라 모든 유형의 파일을 압축할 수 있습니다. 예를 들어 HTML 파일을 압축하려면 다음을 사용하십시오.
TEXT 파일을 압축하려면 다음을 사용하십시오.
JavaScript 를 압축하거나 하나의 명령으로 여러 파일 유형에 압축을 추가할 수도 있습니다.
또는 모든 JavaScript, HTML 및 CSS 파일을 GZIP으로 압축하려면 다음을 사용할 수 있습니다.
4. 핫링크로부터 사이트 보호
이미지를 핫링크하지 않으려면 다음을 .htaccess
파일에 추가하세요.
yourdomain.com을 자신의 것으로 바꾸면 됩니다.
5. 특정 도메인에서 추천된 방문자 차단
환영하지 않는 특정 도메인의 사용자가 있는 경우 사이트에서 차단할 수 있습니다. 예를 들어, 귀하의 사이트가 트래픽을 원하지 않는 위치(예: 성인 사이트, 블랙햇 사이트 등)에 나열되는 경우 403 금지 페이지를 제공할 수 있습니다. mod_rewrite
를 활성화해야 하지만 일반적으로 켜져 있으므로 괜찮습니다. 다음 스니펫을 추가하세요.
bannedurl1.com
및 bannedurl2.com
등을 블랙리스트에 추가하려는 도메인 이름으로 교체해야 합니다. 입력한 도메인 이름이 대소문자를 구분하지 않음을 지정하기 때문에 [NC]
플래그를 사용할 수 있습니다. [F]
플래그는 수행할 작업을 지정합니다. 이 경우 403 Forbidden 오류를 표시합니다. 여러 사이트를 금지하려면 모든 도메인에 대해 [NC,OR]
플래그를 사용하고 마지막 도메인에 대해 [NC,OR] 플래그를 사용하고 단일 도메인을 금지하려면 [NC]
플래그만 사용합니다.
6. 특정 사용자 에이전트의 요청 차단
로그 파일에 특정 사용자 에이전트(봇 또는 스파이더)가 표시되면 .htaccess
에 몇 줄을 추가하고 사이트에 대한 액세스를 거부할 수 있습니다.
badbot1
, badbot1
등을 로그 파일의 봇 이름으로 바꿉니다. 이렇게 하면 이러한 프로그램이 사이트에서 멀리 떨어져 있어야 합니다.
7. 파일 캐싱
사이트 로드 시간을 단축하는 또 다른 방법은 파일 캐싱을 사용하는 것입니다. 파일을 캐시하기 위해 추가해야 할 사항은 다음과 같습니다.
이 예에 나열된 파일 순서에 더 많은 파일 유형을 추가(또는 일부 제거)할 수 있습니다. 적절한 작업을 수행하십시오. max-age
를 사용하여 파일이 캐시에 저장되는 시간(초)을 지정할 수도 있습니다.
8. 특정 파일 형식에 대한 캐싱 비활성화
특정 파일 형식을 캐시하지 않으려면 캐시 시퀀스에 포함하지 않는 것이 더 쉽습니다. 그러나 파일을 명시적으로 나열하지 않은 경우에도 파일이 캐시될 수 있으며 이 경우 해당 파일에 대해서만 캐시를 비활성화할 수 있습니다. 대부분의 경우 스크립트와 같은 동적 파일에 대한 캐싱을 비활성화하려고 합니다. 방법은 다음과 같습니다.
캐싱을 비활성화하려는 파일을 파이프하기만 하면 됩니다.
9. 다운로드 대화 상자 건너뛰기
기본적으로 웹 서버에서 파일을 다운로드하려고 하면 파일을 저장할 것인지 열 것인지 묻는 대화 상자가 나타납니다. 이 대화는 대용량 미디어 파일이나 PDF에서 특히 짜증납니다. 서버에 업로드한 파일이 다운로드용인 경우 사용자의 수고를 덜어주고 바로 다운로드를 진행할 수 있습니다. 다음은 .htaccess
에서 설정해야 할 사항입니다.
10. .htaccess
파일 이름 바꾸기
어떤 이유로든 주로 보안과 관련되어 .htaccess
파일의 이름을 바꾸려는 경우 매우 쉽습니다. 이론적으로 .htaccess
파일의 이름을 바꾸는 것은 서버에서 실행되는 응용 프로그램에 문제를 일으키지 않아야 하지만 파일 이름을 바꾼 후 우연히 그러한 문제를 발견하면 원래 이름으로 다시 이름을 바꾸면 됩니다.
또한 파일 자체 또는 .htaccess
가 언급된 모든 항목을 업데이트해야 합니다. 그렇지 않으면 많은 오류가 발생합니다.
11. 기본 인덱스 페이지 변경
인덱스 페이지를 기본 index.html
, index.php
, index.htm
등과 다른 것으로 만들고 싶다면 매우 쉽습니다. .htaccess
에 추가해야 할 사항은 다음과 같습니다.
mypage.html
을 색인으로 사용하려는 페이지의 실제 URL로 바꾸면 완료됩니다.
12. 보안 https 연결로 리디렉션
HTTPS를 사용 중이고 사용자를 사이트의 보안 페이지로 리디렉션하려면 다음을 사용하십시오.
13. PHP에서 파일 업로드 제한, 포스트 데이터의 최대 크기, 스크립트의 최대 실행 시간 등 제한
.htaccess
를 사용하면 PHP 응용 프로그램에 직접 영향을 주는 일부 값을 설정할 수 있습니다. 예를 들어, 대용량 파일로 인해 호스팅 공간이 부족하지 않도록 PHP에서 업로드 제한을 적용하려면 다음을 사용하세요.
물론 적절하다고 판단되는 값으로 설정할 수 있습니다. 이 예에서 15M(MB)은 고정되어 있지 않습니다. PHP에서 업로드할 수 있는 최대 게시물 크기를 제한할 수도 있습니다. 이를 수행하려면 다음을 추가하십시오.
마찬가지로 10M
을 자신에게 맞는 값으로 변경할 수 있습니다. 스크립트를 영원히 실행하지 않으려면 다음을 사용하여 실행 시간을 제한할 수 있습니다.
240
은 스크립트가 종료될 때까지의 시간(초)이며 짐작할 수 있듯이 아무 값이나 될 수 있습니다. 마지막으로 스크립트가 입력 데이터를 구문 분석할 수 있는 시간을 제한하려면 다음을 사용하십시오.
원하는 값을 초 단위로 설정하십시오.
14. 파일 형식 위장하기
사용자가 사이트에 있는 파일의 파일 형식을 알고 싶지 않은 경우가 있습니다. 이 정보를 숨기는 한 가지 방법은 위장하는 것입니다. 예를 들어 모든 파일이 HTML 또는 PHP 파일인 것처럼 보이게 할 수 있습니다.
.htaccess
로 할 수 있는 일이 훨씬 더 많습니다. 예를 들어 사이트 페이지의 자동 번역을 설정하거나 서버 시간대를 설정하거나 URL에서 www를 제거하거나 멋진 디렉토리 목록 등을 사용할 수 있습니다. 어쨌든 .htaccess
로 실험을 시작하기 전에 항상 원본을 백업하십시오. .htaccess
, 일이 계획대로 진행되지 않으면 되돌릴 작업 복사본이 있습니다.