25가지 유용한 Apache ‘.htaccess’ 트릭을 사용하여 웹사이트를 보안하고 사용자화하는 방법

웹사이트는 우리 삶의 중요한 부분입니다. 그들은 비즈니스를 확장하고 지식을 공유하는 수단으로 기능하며 그 이외에도 많은 일을 합니다. 이전에는 정적 콘텐츠만 제공하는 것으로 제한되어 있었지만, 동적 클라이언트 및 서버 측 스크립팅 언어의 도입과 html에서 html5로의 지속적인 발전으로 웹사이트에 모든 동적 기능을 추가할 수 있게 되었으며, 앞으로는 더 많은 동적 기능이 예상됩니다.

웹사이트와 함께 전 세계의 많은 관객에게 이러한 웹사이트를 표시할 수 있는 단위의 필요성이 생깁니다. 이 필요는 웹사이트를 호스팅하는 수단을 제공하는 서버에 의해 충족됩니다. 이에는 다음과 같은 서버 목록이 포함됩니다: 아파치 HTTP 서버, 조미라, 그리고 워드프레스 등이 웹사이트를 호스팅할 수 있게 합니다.

25 htaccess Tricks

웹사이트를 호스팅하려는 사람은 자체 로컬 서버를 만들거나 위에서 언급한 서버 중 하나에 연락하여 웹사이트를 호스팅할 수 있습니다. 그러나 실제 문제는 여기서 시작됩니다. 웹사이트의 성능은 주로 다음 요소에 달려 있습니다:

  1. 웹사이트에서 사용된 대역폭.
  2. 해커에 대한 웹사이트의 보안 수준.
  3. 데이터베이스를 통한 데이터 검색에 대한 낙관주의
  4. 내비게이션 메뉴 표시 및 더 많은 UI 기능 제공 시 사용자 친화성.

이와 함께, 웹사이트를 호스팅하는 서버의 성공을 지배하는 다양한 요소는 다음과 같습니다:

  1. 특정 웹사이트에 대한 데이터 압축 양.
  2. 동일한 또는 다른 웹사이트를 요청하는 여러 클라이언트에 동시에 서비스를 제공할 수 있는 능력.
  3. 웹 사이트에 입력된 기밀 데이터를 안전하게 보호하는 것은 이메일, 신용 카드 세부 정보 등과 같은 것들입니다.
  4. 웹 사이트의 동적성을 향상시키기 위한 더 많은 옵션을 허용합니다.

이 기사는 서버에서 제공되는 웹 사이트의 성능을 향상시키고 나쁜 봇, 핫링크 등으로부터 보호하는 기능 중 하나에 대해 다룹니다. 즉, ‘htaccess’ 파일입니다.

.htaccess는 무엇인가요?

htaccess (또는 하이퍼텍스트 액세스)는 웹 사이트 소유자가 서버 환경 변수 및 기타 매개변수를 제어하여 웹 사이트의 기능성을 향상시킬 수 있는 파일입니다. 이 파일들은 웹 사이트의 디렉토리 트리의 모든 디렉토리에 위치할 수 있으며 해당 디렉토리 및 해당 파일 및 폴더에 기능을 제공합니다.

이러한 기능들은 무엇인가요? 이것들은 서버 지시문, 즉 특정 작업을 수행하도록 서버에 지시하는 줄들이며, 이러한 지시문은 이 파일이 위치한 폴더 내의 파일 및 폴더에만 적용됩니다. 이 파일들은 기본적으로 숨겨져 있으며 모든 운영 체제 및 웹 서버가 기본적으로 이를 무시하도록 구성되어 있지만 숨겨진 파일을 표시하면 이 매우 특별한 파일을 볼 수 있습니다. 어떤 매개변수를 제어할 수 있는지는 후속 섹션에서 논의할 주제입니다.

주의: 만약 .htaccess 파일이 /apache/home/www/Gunjit/ 디렉토리에 위치한다면 해당 디렉토리의 모든 파일과 폴더에 대한 지시문을 제공하지만, 만약 이 디렉토리에 또 다른 폴더인 /Gunjit/images/가 있고 다시 다른 .htaccess 파일이 있다면 이 폴더의 지시문이 마스터 .htaccess 파일(또는 상위 폴더의 파일)에서 제공하는 것을 덮어쓸 것입니다.

아파치 서버와 .htaccess 파일

아파치 HTTP 서버는 일반적으로 아파치라고 불리며, 전투 전략에서 뛰어난 기술을 보유한 네이티브 아메리칸 부족인 아파치를 존경하여 명명되었습니다. C/C++ 및 XML로 구축되었으며 NCSA HTTPd 서버를 기반으로 한 크로스 플랫폼 웹 서버로, 월드 와이드 웹의 성장과 발전에 중요한 역할을 합니다.

주로 UNIX에서 사용되지만 FreeBSD, Linux, Windows, Mac OS, Novel Netware 등 다양한 플랫폼에서 사용할 수 있습니다. 2009년에는 아파치가 1억 개 이상의 웹사이트를 제공하는 최초의 서버가 되었습니다.

아파치 서버에는 www/ 디렉토리의 사용자당 하나의 .htaccess 파일이 있습니다. 이 파일들은 숨겨져 있지만 필요시 표시할 수 있습니다. www/ 디렉토리에는 사용자 또는 소유자 이름으로 명명된 웹사이트에 해당하는 여러 폴더가 있습니다. 이 외에도 각 폴더에 해당하는 파일을 구성하는 하나의 .htaccess 파일을 가질 수 있습니다.

아파치 서버에서 htaccess 파일을 구성하는 방법은 다음과 같습니다…

아파치 서버에서의 구성

두 가지 경우가 있을 수 있습니다:

자체 서버에서 웹사이트 호스팅

이 경우에는 .htaccess 파일이 활성화되어 있지 않은 경우에는 .htaccess 파일을 활성화할 수 있습니다. 단순히 httpd.conf (Apache HTTP 데몬의 기본 구성 파일)로 이동하고 <Directories> 섹션을 찾습니다.

<Directory "/var/www/htdocs">

그리고 다음과 같이 기술된 줄을 찾아 수정하십시오.

AllowOverride None 

AllowOverride All

이제 Apache를 다시 시작하면 .htaccess가 작동합니다.

다른 호스팅 제공업체 서버에 웹 사이트를 호스팅하는 경우

이 경우 호스팅 관리자에게 .htaccess 파일에 액세스를 허용하는지 여부를 상담하는 것이 좋습니다.

웹 사이트를 위한 Apache 웹 서버의 25가지 ‘.htaccess’ 트릭

1. .htaccess 파일에서 mod_rewrite를 활성화하는 방법

mod_rewrite 옵션을 사용하면 리디렉션 및 실제 URL을 다른 URL로 리디렉션하여 숨길 수 있습니다. 이 옵션을 사용하면 URL을 긴 것에서 짧고 쉽게 기억할 수 있는 것으로 대체할 수 있어 매우 유용할 수 있습니다.

mod_rewrite를 허용하려면 다음 줄을 .htaccess 파일의 첫 번째 줄로 추가하면 됩니다.

Options +FollowSymLinks

이 옵션을 사용하면 심볼릭 링크를 따라갈 수 있으므로 웹 사이트에서 mod_rewrite 옵션을 활성화할 수 있습니다. URL을 짧고 간결하게 대체하는 방법은 나중에 설명됩니다.

2. 웹 사이트에 액세스를 허용하거나 거부하는 방법

htaccess 파일은 order, allowdeny 키워드를 사용하여 해당 폴더 또는 파일에 대한 웹 사이트 또는 폴더의 액세스를 허용하거나 거부할 수 있습니다.

192.168.3.1 IP에만 액세스를 허용
Order Allow, Deny
Deny from All
Allow from 192.168.3.1

OR

Order Allow, Deny
Allow from 192.168.3.1

주문 키워드는 여기에서 허용, 거부 액세스가 처리될 순서를 지정합니다. 위의 ‘주문’ 문은 허용 문이 먼저 처리되고 그 다음에 거부 문이 처리됩니다.

한 IP 주소에 대한 액세스 거부

아래 라인은 웹 사이트의 모든 사용자에 대한 액세스를 허용하되 IP 주소가 192.168.3.1인 경우를 제외하고자 할 때의 수단을 제공합니다.

rder Allow, Deny
Deny from 192.168.3.1
Allow from All

OR


Order Deny, Allow
Deny from 192.168.3.1

3. 다른 오류 코드에 대한 Apache 오류 문서 생성.

일반적으로 웹 브라우저에서 ‘404 페이지를 찾을 수 없음’과 같은 페이지를 볼 때와 같이 사용자/클라이언트가 웹 사이트에 없는 페이지를 요청했을 때 서버에서 생성된 다른 오류 코드에 대해 실행할 오류 문서를 간단한 라인을 사용하여 수정할 수 있습니다. ‘.htaccess’ 파일은 이러한 오류 조건이 발생할 경우 어떤 조치를 취할지를 지정합니다.

이를 위해 다음 라인이 ‘.htaccess’ 파일에 추가되어야 합니다:

ErrorDocument <error-code> <path-of-document/string-representing-html-file-content>

ErrorDocument’는 키워드이며, 오류 코드는 401, 403, 404, 500 또는 유효한 오류 코드를 나타낼 수 있으며 마지막으로 ‘path-of-document’는 로컬 서버를 사용하는 경우 로컬 기기의 경로를 나타내거나 웹 사이트를 호스팅하는 다른 서버를 사용하는 경우 서버의 경로를 나타냅니다.

예:
ErrorDocument 404 /error-docs/error-404.html

위의 라인은 클라이언트가 페이지에 대한 잘못된 요청으로 서버에서 404 오류가 보고될 때 ‘error-docs’ 폴더에 있는 ‘error-404.html’ 문서가 표시되도록 설정합니다.

rrorDocument 404 "<html><head><title>404 Page not found</title></head><body><p>The page you request is not present. Check the URL you have typed</p></body></html>"

위의 표현은 일반적인 html 파일을 나타내는 문자열을 배치하는 올바른 방법입니다.

4. Apache 서버 환경 변수 설정/해제

.htaccess 파일에서 웹사이트 호스터가 수정할 수 있는 전역 환경 변수를 설정하거나 해제할 수 있습니다. 환경 변수를 설정하거나 해제하려면 다음 라인을 .htaccess 파일에 추가해야 합니다.

환경 변수 설정
SetEnv OWNER “Gunjit Khera”
환경 변수 해제
UnsetEnv OWNER

5. 파일에 대한 다른 MIME 유형 정의

MIME (다목적 인터넷 멀티미디어 확장)은 브라우저가 웹 페이지를 실행할 때 기본적으로 인식하는 유형입니다. 웹사이트의 MIME 유형을 .htaccess 파일에 정의하여 사용자가 정의한 다양한 유형의 파일을 서버에서 인식하고 실행할 수 있도록 할 수 있습니다.

<IfModule mod_mime.c>
	AddType	application/javascript		js
	AddType application/x-font-ttf		ttf ttc
</IfModule>

여기서 mod_mime.c은 서버가 이해할 수 있도록 웹사이트에서 사용하는 다른 확장자에 대한 MIME 유형을 정의하는 모듈이며 시스템에 이 모듈이 설치되어 있다면 이 모듈을 사용하여 서버가 이해할 수 있도록 웹사이트에서 사용하는 다른 확장자에 대한 MIME 유형을 정의할 수 있습니다.

6. Apache에서 업로드 및 다운로드 크기 제한하는 방법

.htaccess 파일을 통해 특정 클라이언트가 웹사이트에서 업로드하거나 다운로드하는 데이터 양을 제어할 수 있는 기능을 제공합니다. 이를 위해 .htaccess 파일에 다음 라인을 추가하면 됩니다:

php_value upload_max_filesize 20M
php_value post_max_size 20M
php_value max_execution_time 200
php_value max_input_time 200

위의 줄은 최대 업로드 크기, 게시되는 데이터의 최대 크기, 최대 실행 시간 즉, 사용자가 로컬 기기에서 웹 사이트를 실행하는 데 허용된 최대 시간, 입력 시간 내의 최대 시간 제약을 설정합니다.

Source:
https://www.tecmint.com/apache-htaccess-tricks/