programing

.git 디렉터리 웹에 액세스할 수 없도록 설정

bestprogram 2023. 8. 15. 11:19

.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)는 특수 사용자 계정으로 실행되므로, 예를 들어 사용자로 실행됩니다.apacheCentOS에서, 반면에.git디렉터리는 실제 사용자 계정으로 만들어야 하므로 권한을 변경하여 액세스를 차단할 수 있습니다.또한 이 접근 방식은 새로운 파일을 도입하지 않으며 git 명령에도 영향을 주지 않습니다.

명령은 다음과 같습니다.

chmod -R o-rx .git

.git 폴더에 대한 액세스를 개별적으로 제어하는 것이 불편하며 덮어쓰거나 새 설치를 잊어버리는 것을 방지하기 위해 .htaccess 대신 apache config를 통해 이를 수행하기로 선택합니다.

여기 도움이 되기를 바라는 몇 가지 세부 지침이 있습니다.Ubuntu 16.10을 사용하고 있습니다.

  1. 먼저 브라우저에서 .git 폴더로 이동하면 어떻게 되는지 확인합니다.제 경우에는 디렉토리 목록을 제시받았습니다.보면 안 되는 것을 보는 경우(즉, 보지 말아야 할 것을 보는 경우.404점을 받지 못합니다. 다음을 수행하십시오.
  2. apache2ctl -V를 사용하여 HTTPD_ROOT 및 SERVER_CONFIG_FILE을 가져옵니다.
  3. 이를 사용하여 Apache 구성을 편집합니다. 이 경우 $sudo nano /etc/apache2/apache2.conf
  4. 구성 파일의 어딘가에 RedirectMatch 404 /.git를 추가합니다.
  5. apache 다시 시작: $ sudo 서비스 apache2 다시 시작
  6. 이제 폴더로 다시 이동하면 404가 표시됩니다.
  7. .gitignore와 함께 시도해보고 404도 받았습니다.

mod_dll은 원하는 효과를 제공합니다.

RewriteEngine on
RewriteRule .*\.git/.* - [F]

- Apache2(LAMP)를 할 수 있는 두 ..htaccess내용..하나가 실패하면 다음을 시도합니다.

  1. for(개발 환경)

/var/www/dll 루트 디렉토리에 .htaccess 파일을 만들고 그 안에 코드를 붙여넣습니다.

<Directorymatch "^/.*/\.git/">
  Order 'deny,allow'
  Deny from all
</Directorymatch>
  1. (운영 환경)용

가상 호스트 파일 내부(/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