Make.git katalog stron www

Mam stronę internetową, którą używam github (closed source) do śledzenia zmian i aktualizacji strony. Jedynym problemem jest to, że wydaje się, że .katalog git jest dostępny przez Internet. Jak mogę to zatrzymać i nadal móc używać Gita?

Powinienem użyć .htaccess? Czy powinienem zmienić uprawnienia .git?

Author: Chris Muench, 2011-05-26

7 answers

Utwórz plik .htaccess w folderze .git i umieść w nim:

Order allow,deny
Deny from all
 31
Author: ThiefMaster,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-26 17:27:17

Umieść to w pliku .htaccess w root twojego serwera www:

RedirectMatch 404 /\.git

To rozwiązanie jest wytrzymałe i bezpieczne : it

  • Działa dla wszystkich .git katalogów w Twojej witrynie, nawet jeśli jest ich więcej niż jeden,
  • ukrywa również inne pliki Git, takie jak .gitignore i .gitmodules
  • Działa nawet dla nowo dodanych .git katalogów i
  • nie zdradza nawet faktu istnienia katalogów.
 300
Author: Bennett McElwee,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-10 09:37:21

ZARÓWNO .htaccess jak i uprawnienia do folderu .git/ będą działać. Polecam ten pierwszy:

<Directory .git>
    order allow,deny
    deny from all
</Directory>
 32
Author: Jake Wharton,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-31 21:13:28

Mod_rewrite da Ci pożądany efekt:

RewriteEngine on
RewriteRule .*\.git/.* - [F]
 3
Author: Kosh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-02-08 11:42:02

Nie chciaĹ 'em siÄ ™ grzebaÄ ‡ w katalogu .git i nie byĹ' em w stanie uzyskaÄ ‡ rozwiÄ ... zania Bennetta do dziaĹ 'ania na Apache 2.2, ale dodanie nastÄ ™ pujÄ ... cego elementu do mojej konfiguracji <VirtualHost> dziaĹ' aĹ ' o:

RewriteRule ^.*\.git.* - [R=404]
 3
Author: David Moles,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:02:45

Nie podoba mi się kontrolowanie dostępu do mojego .git foldery pojedynczo i wybrać, aby zrobić to poprzez Apache config zamiast.htaccess, aby zapobiec ich nadpisaniu lub zapomnieniu na nowej instalacji itp.

Oto kilka szczegółowych instrukcji, mam nadzieję, że pomogą. Używam Ubuntu 16.10.

  1. najpierw sprawdź, co się stanie, jeśli przejdziesz do.folder git w przeglądarce. W moim przypadku przedstawiono mi listę katalogów. Jeśli widzisz to, czego nie powinieneś widzieć (tj. nie dostaniesz 404), wykonaj następujące czynności.
  2. W związku z tym, że nie jest to możliwe, nie jest to możliwe.]} W naszej ofercie znajdziecie Państwo również:conf
  3. Dodaj gdzieś w pliku konfiguracyjnym: RedirectMatch 404/.git
  4. W tym celu prosimy o zapoznanie się z naszą polityką prywatności.]}
  5. powinien teraz dostać 404, jeśli ponownie przejdziesz do folderu
  6. Próbowałem tego .gitignore i również dostał 404
 3
Author: Chris B,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-23 06:54:59

Bardziej solidną i prostą opcją byłoby wyłączenie uprawnień do odczytu i wykonywania katalogu .git.

Ponieważ głównie Apache (httpd) działa pod specjalnym kontem użytkownika, na przykład, działa jako użytkownik apache na CentOS, podczas gdy katalog .git musi być utworzony pod rzeczywistym kontem użytkownika, więc możemy po prostu zablokować dostęp poprzez zmianę uprawnień. Co więcej, takie podejście nie wprowadza żadnego nowego pliku, ani nie wpływa na polecenia git.

Komenda może być:

chmod -R o-rx .git
 1
Author: hailong,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-09 08:25:01