htaccess로 아파치 보안 헤더를 어떻게 설정합니까?

2020. 7. 16. 09:33it 개발

    목차

htaccess로 아파치 보안 헤더를 어떻게 설정합니까?

먼저 다시 쓰기 모듈을 활성화해야합니다.




터미널에서이 코드를 Ctrl + v로 누릅니다.

sudo a2enmod rewrite




다시 쓰기 활성화를 마치면 아파치에서 htaccess를 사용할 수 있습니다.


www가 아닌 ​​www

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]


(예) www.magsty.net-> magsty.net

www에서 www가 아닌 ​​사이트 (이 중 하나를 선택하십시오.)

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

# Redirect to www
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]


(예) magsty.net-> www.magsty.net


404 커스터마이징

이 코드를 htaccess에 추가하십시오

ErrorDocument 404 /error.html


이 코드는 사용자가 404를 받으면 /error.html로 이동 함을 의미합니다.

예) 사용자는 404를 얻습니다.

이 사용자 정의 오류 페이지를보십시오



대신에



htaccess로 아파치에 hsts 헤더를 추가하자!

헤더 집합 엄격한 전송 보안 "max-age = 63072000; includeSubDomains; 사전로드"

Header set Strict-Transport-Security "max-age=63072000; includeSubDomains ; preload"


htaccess로 작성하십시오.
max-age = 63072000은 hsts가 활성화 된 시간입니다.
-------------------------------------------------- ------------------------

사이트의 모든 하위 도메인 (및 중첩 하위 도메인)을 검사하고 HTTPS를 통해 제대로 작동하는지 확인하십시오.
다음 헤더 값을 사용하여 모든 HTTPS 응답에 Strict-Transport-Security 헤더를 추가하고 최대 연령을 단계적으로 늘리십시오.
5 분:
최대 연령 = 300; includeSubDomains
일주:
최대 연령 = 604800; includeSubDomains
1 개월:
최대 연령 = 2592000; includeSubDomains
각 단계에서 깨진 페이지가 있는지 확인하고 사이트 통계 (예 : 트래픽, 수익)를 모니터링하십시오. 발생하는 모든 문제를 해결 한 후 계속 진행하기 전에 스테이지의 최대 연령을 기다립니다. 예를 들어, 마지막 단계에서 한 달을 기다리십시오.
더 이상 문제가 없을 것이라고 확신하면 최대 연령을 2 년으로 늘리고 사이트를 사전로드 목록에 제출하십시오.
2 년, 사전로드 요청 :
최대 연령 = 63072000; includeSubDomains; 예압
이 설명은 hstspreload.org의 설명입니다.

-------------------------------------------------- -----------------------
includeSubDomains는 * .magsty.net과 같은 하위 도메인을 포함 함을 의미합니다.

preload 지원 브라우저는 hstspreload에서 해당 사이트를 사용합니다 (Chrome, Firefox, Opera, Safari, IE 11 및 Edge)

이와 같이이 구성은 잘 작동합니다.



htaccess로 아파치에 Referrer-Policy 헤더를 추가하자!

헤더는 항상 Referrer-Policy "same-origin"으로 설정

Header always set Referrer-Policy "same-origin"


htaccess로 작성하십시오.

추가 옵션은

no-referrer
no-referrer-when-downgrade (default)
origin
origin-when-cross-origin
same-origin
strict-origin
strict-origin-when-cross-origin
unsafe-url



-------------------------------------------------- ----------

no-referrer
Referer 헤더는 완전히 생략됩니다. 요청과 함께 리퍼러 정보가 전송되지 않습니다.
no-referrer-when-downgrade (default)
정책이 지정되지 않았거나 제공된 값이 유효하지 않은 경우 이것이 기본 동작입니다. 프로토콜 보안 수준이 동일하게 유지되거나 (HTTP → HTTP, HTTPS → HTTPS) 개선 될 때 (HTTP → HTTPS) URL의 출처, 경로 및 쿼리 문자열은 참조 자로 전송되지만 보안 수준이 낮은 대상으로 전송되지는 않습니다 ( HTTPS → HTTP).
브라우저가 더 엄격한 기본값, 즉 strict-origin-when-cross-origin (https://github.com/whatwg/fetch/pull/952 참조)으로 이동하려는 경우이 값 (또는 더 엄격한)을 사용하는 것이 좋습니다 1) 가능하면 리퍼러 정책을 변경할 때.
origin
문서의 출처 만 리퍼러로 보내십시오.
예를 들어 https://example.com/page.html의 문서는 리퍼러 https://example.com/을 보냅니다.
origin-when-cross-origin
동일한 출처 요청을 수행 할 때는 출처, 경로 및 쿼리 문자열을 보내 되 다른 경우에는 문서의 출처 만 보내십시오.
 same-origin
동일한 사이트 출처에 대해서는 리퍼러가 전송되지만 출처 간 요청은 리퍼러 정보를 보내지 않습니다.
strict-origin
프로토콜 보안 수준이 동일하게 유지 될 때 (HTTPS → HTTPS) 문서의 출처를 리퍼러로만 보내야하지만 덜 안전한 대상 (HTTPS → HTTP)으로 보내지 마십시오.
strict-origin-when-cross-origin
동일 출처 요청을 수행 할 때 출발지, 경로 및 쿼리 문자열을 보내고 교차 출처 요청 (HTTPS → HTTPS)을 수행하는 동안 프로토콜 보안 수준이 동일하게 유지되는 경우에만 출발지를 보내십시오. 대상 (HTTPS → HTTP).
unsafe-url
보안에 관계없이 요청을 수행 할 때 원본, 경로 및 쿼리 문자열을 보냅니다.


이 설명은 모질라의 설명입니다
-------------------------------------------------- ---------- 

 

.html 또는 .php 확장자를 삭제합시다!


1. .html 확장자 삭제

RewriteEngine On
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
RewriteCond %{DOCUMENT_ROOT}/$1.html -f 
RewriteRule ^(.+)/?$ /$1.html [L]


(예) magsty.net/index.html-> magsty.net/index

2. .php 확장자 삭제

RewriteEngine On
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
RewriteCond %{DOCUMENT_ROOT}/$1.php -f 
RewriteRule ^(.+)/?$ /$1.php [L]


(예) magsty.net/index.php-> magsty.net/index

3.

RewriteEngine On
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
RewriteCond %{DOCUMENT_ROOT}/$1.jsp -f 
RewriteRule ^(.+)/?$ /$1.jsp [L]

.jsp 확장명 삭제

(예) magsty.net/index.jsp-> magsty.net/index


htaccess로 아파치에 X-XSS-Protection을 추가하자!

Header set X-XSS-Protection "1; mode=block"


htaccess로 작성하십시오.


htaccess로 아파치에 feature-Policy 헤더를 추가하자!

Header always set Feature-Policy "microphone 'none'; payment 'none'; sync-xhr 'self' https://yourdomain"



htaccess로 작성하십시오.


요청 또는 질문을 다시 작성하기 위해 쉼표를 시청하고 작성해 주셔서 감사합니다.