Как я скрываю каталоги в Apache, специфически управлении исходным кодом?

В

for (int i = 0; i < 99; i++)

i имеет диапазон [0, 98].

int randomNums1[98];

имеет допустимый диапазон [0,97], поэтому

randomNums1[i] = 1 + rand() % ((1000 - 1) + 1);

рискуют выйти за пределы диапазона.

Решение: уменьшите диапазон i.

for (j = i + 1; j < numbersSize; ++j)

Также позволяет j выходить за пределы диапазона.

26
задан Matthew Scharley 18 October 2008 в 10:51
поделиться

6 ответов

Две вещи:

  1. не используют IfModule для функциональности, необходимо присутствовать. Это должно хорошо сделать это для автоиндекса, потому что это не могло бы присутствовать и не крайне важно для схемы. Но Вы рассчитываете на перезапись, присутствующую для защиты содержания. Таким образом лучше удалить директиву IfModule и позволить апачу сказать Вам, когда перезапись не присутствует для Вас для включения его (или по крайней мере знать, что Вы не будете 'защищены' и сознательно прокомментируете строки)

  2. Никакая потребность использовать перезапись там, если у Вас будет доступ к основным конфигурационным файлам, намного легче был бы один из

    <DirectoryMatch \.svn>
       Order allow,deny
       Deny from all
    </DirectoryMatch>
    

, который генерирует 403 Запрещенных (который лучше с точки зрения соответствия HTTP), или, если Вы хотите взять безопасность с помощью маршрута мрака, используйте AliasMatch

    AliasMatch \.svn /non-existant-page

, Если у Вас нет доступа к основным конфигурационным файлам, Вас оставляют с надеждой mod_rewrite, включен для использования в .htaccess.

38
ответ дан 28 November 2019 в 06:31
поделиться

Это может быть достигнуто всего сервера (рекомендуемый) на единственной основе виртуального хоста, или даже в .htaccess файлы, если Ваш сервер является несколько разрешающим с тем, что позволяется в них. Определенная конфигурация, в которой Вы нуждаетесь:

RewriteEngine On
RewriteRule /\.svn /some-non-existant-404-causing-page

<IfModule autoindex_module>
    IndexIgnore .svn
</IfModule>

первый раздел требует mod_rewrite. Это вынуждает любые запросы с "/.svn" в них (т.е. любой запрос на каталог или что-либо в каталоге) быть внутренне перенаправлены к non-existant странице на Вашем веб-сайте. Это является абсолютно прозрачным конечному пользователю и необнаруживаемым. Это также вызывает 404 ошибки, как будто Ваш .svn папки просто исчезли.

второй раздел является чисто косметическим, и скроется эти .svn папки от автоиндексного модуля, если это активируется. Это - хорошая идея также, только чтобы помешать любопытным душам получать любые идеи.

7
ответ дан 28 November 2019 в 06:31
поделиться

Существует интересный подход, который я использую: контроль (и обновление) сделан на абсолютно отдельном каталоге (возможно на абсолютно отдельной машине), и затем код копируется туда, где веб-сервер считает его с rsync. - исключают правило о rsync командной строке, используется, чтобы заставить его не скопировать .svn (и CVS) diretories, в то время как - удаляют - исключенный, удостоверяется, что они будут удалены, даже если они были скопированы прежде.

И начиная с обновление svn и начиная с rsync делают возрастающие передачи, это довольно быстро даже для более крупных сайтов. Это также позволяет Вам иметь свой репозиторий позади брандмауэра. Единственный протест состоит в том, что необходимо переместить все каталоги с файлами, сгенерированными на сервере (такими как файлы/, каталог на Drupal) к месту вне целевого каталога rsync (rsync перезапишет все, когда используется этот путь), и символьная ссылка на него должна быть создана в rsync исходном каталоге . rsync исходный каталог может иметь другие неимеющие версию файлы также (как определенные для машины конфигурационные файлы).

полный набор rsync параметров, которые я использую,

rsync -vv --rsh='ssh -l username' -rltzpy --exclude .svn/ --exclude CVS/ --exclude Attic/ --delete-after --delete-excluded --chmod=og-w,Fa-x

Даже тогда для дублирования, у меня все еще есть правило конфигурации препятствовать тому, чтобы .svn был получен доступ, скопирован с правила значения по умолчанию Debian, которое предотвращает .ht* (.htaccess, .htpasswd) от того, чтобы быть полученным доступ.

4
ответ дан 28 November 2019 в 06:31
поделиться

Сокрытие каталогов как Vinko говорит, должен работать. Но, вероятно, было бы более просто использовать экспорт svn вместо svn co. Это не должно генерировать .svn каталоги.

3
ответ дан 28 November 2019 в 06:31
поделиться

Рассмотрите развертывающийся живой код с помощью инструментов управления пакета операционной системы, а не непосредственно от VCS. Это позволит Вам удостовериться, чтобы Ваши живые пакеты не содержали каталоги метаданных, или другие потенциально чувствительные инструменты и данные.

3
ответ дан 28 November 2019 в 06:31
поделиться

В той же ситуации я использовал RedirectMatch по двум причинам. В первую очередь, это был единственный метод, который я мог найти, разрешенный в .htaccess на этом сервере с довольно ограничительной конфигурацией, которую я не мог изменить. Также я считаю его самым чистым, потому что он позволяет мне сказать Apache, что да, там есть файл, но просто притвориться, что его нет при обслуживании, поэтому верните 404 (в отличие от 403, который раскрывает то, о чем посетители веб-сайта не должны знать. ).

Теперь я считаю стандартную часть моих файлов .htaccess :

## Completely hide some files and directories.
RedirectMatch 404 "(?:.*)/(?:[.#].*)$"
RedirectMatch 404 "(?:.*)~$"
RedirectMatch 404 "(?:.*)/(?:CVS|RCS|_darcs)(?:/.*)?$"
8
ответ дан 28 November 2019 в 06:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: