.git 디렉터리 웹에 액세스할 수 없도록 설정
Github(폐쇄 소스)을 사용하여 변경 사항을 추적하고 사이트를 업데이트하는 웹 사이트가 있습니다.유일한 문제는 웹을 통해 .git 디렉토리에 액세스할 수 있다는 것입니다.어떻게 하면 이것을 멈추고 깃을 사용할 수 있을까요?
.htaccess를 사용해야 합니까?.git의 권한을 변경해야 합니까?
이것을 an에 넣으시오..htaccess
웹 서버 루트에 있는 파일:
RedirectMatch 404 /\.git
이 솔루션은 강력하고 안전합니다.
- 모두에게 효과가 있는
.git
사이트에 있는 디렉터리가 두 개 이상 있더라도 - 다른 Git 파일도 숨깁니다.
.gitignore
그리고..gitmodules
- 신규 추가된 경우에도 작동합니다.
.git
디렉터리 및 - 디렉터리가 존재한다는 사실조차 밝히지 않습니다.
작성.htaccess
에 철하다..git
폴더를 만들고 다음을 이 파일에 넣습니다.
Order allow,deny
Deny from all
그러나 저장소를 다시 복제하면 해당 저장소가 손실됩니다.
둘다요..htaccess
및 에 대한 사용 권한.git/
폴더가 작동합니다.전자 제품을 추천합니다.
<Directory .git>
order allow,deny
deny from all
</Directory>
나는 그 곳에서 빈둥거리고 싶지 않았습니다..git
디렉토리 및 Apache 2.2에서 작동하는 Bennett의 솔루션을 가져올 수 없었지만 다음을 내 컴퓨터에 추가했습니다.<VirtualHost>
구성 작업 완료:
RewriteRule ^.*\.git.* - [R=404]
보다 강력하고 간단한 옵션은 의 읽기 및 실행 권한을 비활성화하는 것입니다..git
디렉토리입니다.
대부분 Apache(httpd)는 특수 사용자 계정으로 실행되므로, 예를 들어 사용자로 실행됩니다.apache
CentOS에서, 반면에.git
디렉터리는 실제 사용자 계정으로 만들어야 하므로 권한을 변경하여 액세스를 차단할 수 있습니다.또한 이 접근 방식은 새로운 파일을 도입하지 않으며 git 명령에도 영향을 주지 않습니다.
명령은 다음과 같습니다.
chmod -R o-rx .git
.git 폴더에 대한 액세스를 개별적으로 제어하는 것이 불편하며 덮어쓰거나 새 설치를 잊어버리는 것을 방지하기 위해 .htaccess 대신 apache config를 통해 이를 수행하기로 선택합니다.
여기 도움이 되기를 바라는 몇 가지 세부 지침이 있습니다.Ubuntu 16.10을 사용하고 있습니다.
- 먼저 브라우저에서 .git 폴더로 이동하면 어떻게 되는지 확인합니다.제 경우에는 디렉토리 목록을 제시받았습니다.보면 안 되는 것을 보는 경우(즉, 보지 말아야 할 것을 보는 경우.404점을 받지 못합니다. 다음을 수행하십시오.
- apache2ctl -V를 사용하여 HTTPD_ROOT 및 SERVER_CONFIG_FILE을 가져옵니다.
- 이를 사용하여 Apache 구성을 편집합니다. 이 경우 $sudo nano /etc/apache2/apache2.conf
- 구성 파일의 어딘가에 RedirectMatch 404 /.git를 추가합니다.
- apache 다시 시작: $ sudo 서비스 apache2 다시 시작
- 이제 폴더로 다시 이동하면 404가 표시됩니다.
- .gitignore와 함께 시도해보고 404도 받았습니다.
mod_dll은 원하는 효과를 제공합니다.
RewriteEngine on
RewriteRule .*\.git/.* - [F]
- Apache2(LAMP)를 할 수 있는 두 ..htaccess
내용..하나가 실패하면 다음을 시도합니다.
- for(개발 환경)
/var/www/dll 루트 디렉토리에 .htaccess 파일을 만들고 그 안에 코드를 붙여넣습니다.
<Directorymatch "^/.*/\.git/">
Order 'deny,allow'
Deny from all
</Directorymatch>
- (운영 환경)용
가상 호스트 파일 내부(/etc/sys2/sys-enabled/) > 가상 호스트 파일 찾기 > 파일 열기 > 가상 호스트 태그를 닫은 후 붙여넣기
<Directorymatch "^/.*/\.git/">
Order 'deny,allow'
Deny from all
</Directorymatch>
서버를 다시 시작할 필요가 없습니다. 페이지가 호출될 때 실행됩니다.
장난치는 대신에.htaccess
대부분의 대답이 제안하는 것과 같은 규칙, 간단히 말하면 어떨까요?.git/
웹 루트 위의 디렉터리?
설정에서, 의 설에서정나, 의내▁in.git
디렉토리는 일반적으로 다음과 같은 위치에 있습니다.
/home/web/project_name/.git/
내 실제 코드는 다음에 있습니다.
/home/web/project_name/www_root/
웹 루트(Apache 또는 Nginx에 정의됨) 이후.후자를 가 는저후는선니다합호를자는▁i▁is)다선니/home/web/project_name/www_root/
가 없어요.git
://http://http://http://http://http://http://http://http:///http://http://http:/http:/http://http://////////
언급URL : https://stackoverflow.com/questions/6142437/make-git-directory-web-inaccessible
'programing' 카테고리의 다른 글
도커 구성에서 포트와 노출의 차이점은 무엇입니까? (0) | 2023.08.15 |
---|---|
K&R 책에서 malloc의 이 구현에 대해 설명합니다. (0) | 2023.08.15 |
jQuery : 사용자 지정 특성이 있는 모든 요소 선택 (0) | 2023.08.15 |
jQuery Validation 플러그인: 지정된 제출 단추에 대해 유효성 검사 사용 안 함 (0) | 2023.08.15 |
Ajax 호출에 대한 JSON 응답에 대한 올바른 상태 코드? (0) | 2023.08.15 |