Волшебный файл .htaccess

Содержание:

  • HTML
    • Что такое HTML
    • <!DOCTYPE>
    • Мета теги в <head>
    • Тег <base>
    • Текст в html
    • HTML списки
    • Ссылки
    • Картинки на сайте
    • Таблицы
    • Фреймы
    • Формы
    • DHTML
    • Музыка
    • Видео
    • Карты изображений
    • SVG карты
    • Графика в HTML
    • SSI .shtml
    • Таблица цветов RGB
    • Правильноесочетание цветов
    • Таблица«безопасных»цветов
    • Таблица символов
    • Примеры HTML, CSS
  • CSS
    • Таблицы стилей CSS
    • Свод стилей
    • Псевдоклассы CSS
    • Псевдоэлементы CSS
    • CSS-градиент
    • Flexbox
    • Адаптивная верстка
    • @media screen
  • JavaScript
    • Описание языка
    • Методы и функции
    • Объекты
    • Строки
    • Формы
    • Фреймы и окна
    • Регулярныевыражения
    • Условнаякомпиляция
    • Примеры скриптов
    • Отладка
    • Оптимизация
    • Игры на JS
    • CSS из JS
  • PHP + MySQL
    • Введение в PHP
    • Основы языка
    • Использованиемассивов
    • $_server
    • Создание функций
    • Строки
    • Функции работысо строками
    • Объектноепрограммирование
    • Формы
    • Файлы
    • Загрузка файлов на сервер
    • MySQL
      • Дата, время MySQL
      • Вопросы по MySQL
    • Cookie
    • htaccess
    • Безопасность
    • Сессии
    • Отправка почты
    • Кэширование
    • Дата, время
    • Математическиефункции
    • Дополнительныевозможности
    • Регулярныевыражения
    • Библиотека Curl
    • IMAP, POP3, NNTP
    • Оптимизация
    • Примеры скриптов
  • XML + XSLT
  • AJAX
    • Знакомство с Ajax
    • ОбъектXMLHttpRequest
    • СозданиеAjax-приложения
    • Отправка формы
    • Области применения
    • Ajax примеры
    • АльтернативныеAjax-у методы
    • Ошибки Ajax
    • Навигация на AJAX
  • Графика CorelDRAW
    • Типы графики
    • Пакет CorelDRAW GS
    • Зимняя картинка
    • Осколок стекла
  • SEO
    • Анализ сайта
    • WEB продвижение(оптимизация)
    • Информацияо домене
    • Информация обIP-адресе
    • Ping поисковыхсистем
    • Robots.txt
    • meta Robots
    • Каталоги ипоисковики
    • Особенности SAPE
    • Page Rank
    • Сервис созданияссылок
    • О Контекстнойрекламе
  • Сервисы
  • Разное
    • Движки сайтов (CMS)
    • Хостинг
    • Настройка DNS
    • ADSL
    • RSS
    • ActiveX и HTML
    • Паролированиестраницы
    • HTTP коды
    • HTTP протокол
    • HTTP заголовки
    • Прячем ссылки
    • Черный списоксайтов
    • ☭ Заработокв интернете
    • Термины иопределения
    • Продажа доменов
    • НастройкиЯндекс-почты
    • Кнопки социалок
    • Настроки SIPв телефоне
    • Созданиепоискового плугина
    • Сервискоротких ссылок
    • Telegram: бот, ссылки.
    • Друзья
    • Статьи Liex
    • Задания к л/р
    • Примерызачетных задач
  • Статьи, обзоры
    • Шаблоны сайтов
    • Новости

Настройка авторизации Apache

Итак, необходимый файл паролей готов. Теперь нужно настроить Apache для проверки этого файла перед обслуживанием закрытого контента. Это можно сделать двумя способами.


Первый способ: отредактировать настойки Apache и добавить сведения о файле паролей в виртуальный хост. Такой способ, как правило, более производительный, поскольку позволяет избежать чтения общих конфигурационных файлов. Если вы используете виртуальные хосты, рекомендуется прибегнуть к этому способу настройки.

Второй способ больше подходит пользователям, которые не имеют возможности редактировать виртуальный хост. В таком случае ограничить доступ к некоторым разделам сайта можно при помощи файла .htaccess. Сервер Apache использует файлы .htaccess для того, чтобы настроить определенные элементы конфигурации в каталоге, хранящем контент. Недостатком такого способа является то, что сервер Apache должен перечитывать все эти файлы при каждом запросе к этому каталогу, что может негативно повлиять на производительность.

Выберите наиболее подходящий способ настройки и следуйте инструкциям соответствующего раздела.

Настройка авторизации через виртуальный хост

Откройте файл виртуального хоста сайта, доступ к которому нужно ограничить. В данном примере используется стандартный файл 000-default.conf, содержащий виртуальный хост по умолчанию.

Раскомментированный файл выглядит так:

Авторизация в Apache настраивается по каталогам. Для этого найдите раздел каталога, к которому нужно ограничить доступ, в блоке <Directory ___>. В данном примере нужно ограничить доступ к document root (при необходимости укажите другой каталог):

В блоке этого каталога нужно указать тип авторизации, в данном случае – Basic. В параметре AuthName укажите имя области данных, которое будет отображаться при запросе. Используйте директиву AuthUserFile, чтобы указать созданный ранее файл паролей. Установите значение valid-user для директивы Require, чтобы разрешить доступ к контенту только тем пользователям, которые могут пройти авторизацию.

Сохраните и закройте файл. Перезапустите Apache, чтобы обновить конфигурации.

Теперь доступ к контенту, находящемуся в этом каталоге, защищён паролем.

Настройка авторизации при помощи файла .htaccess

Для начала нужно настроить Apache для поддержки файлов .htaccess. Откройте конфигурации Apache:

Найдите блок <Directory> каталога /var/www (как вы понимаете, это настройки каталога document root). Включите поддержку файлов .htaccess, заменив значение директивы AllowOverride на All.

Сохраните и закройте файл.

Затем нужно добавить файл .htaccess в каталог, доступ к которому нужно ограничить. Опять же, в примере доступ будет ограничен к каталогу document root, /var/www/html (то есть ко всему сайту). Чтобы ограничить доступ к другому каталогу, внесите в код соответствующие поправки.

В этом файле нужно указать тип авторизации, в данном случае это Basic. В директиве AuthName задайте имя области данных, которое будет отображаться при запросе. В директиве AuthUserFile укажите созданный ранее файл паролей для Apache. Для директивы Require укажите значение valid-user, чтобы открыть доступ к контенту только тем пользователям, которые могут пройти авторизацию.

Сохраните и закройте файл. Перезапустите веб-сервер, чтобы обновить его настройки.

Htpasswd Generator Formats

Apache Servers recognize 5 formats for representing a password hash in the text file usually named .

BCRYPT
Use bcrypt encryption for passwords. This is currently considered to be very secure.
CRYPT
crypt(3) is the library function which is used to compute a password hash. Technically the name is a misnomer since it is actually a cryptographic hash function. The output of the function is not merely the hash: it is a text string which also encodes the salt and identifies the hash algorithm used. Apache uses the traditional Unix crypt function with a randomly-generated 32-bit salt (only 12 bits used) and the first 8 characters of the password.
MD5
MD5 is one in a series of message digest algorithms designed by Professor Ronald Rivest of MIT. The 128-bit (16-byte) MD5 hashes (also termed message digests) are typically represented as a sequence of 32 hexadecimal digits. In .htpasswd files the hash is: + an Apache-specific algorithm using an iterated (1,000 times) MD5 digest of various combinations of a random 32-bit salt and the password.
SHA-1
The SHA hash functions are a set of cryptographic hash functions designed by the National Security Agency (NSA) and published by the NIST as a U.S. Federal Information Processing Standard. SHA-1 produces a 160-bit digest from a message with a maximum length of (264 — 1) bits. SHA-1 is the most widely employed of the SHA family. It forms part of several widely used security applications and protocols, including TLS and SSL, PGP, SSH, S/MIME, and IPsec. In .htpasswd files the hash is as follows: + Base64-encoded SHA-1 digest of the password.
PLAIN TEXT
Unencrypted for Windows, BEOS, & Netware only.

Security Info


Web password files such as those managed by htpasswd should not be within the Web server’s URI space — that is, they should not be fetchable with a browser.

The SHA encryption format does not use salting: for a given password, there is only one encrypted representation. The crypt() and MD5 formats permute the representation by prepending a random salt string, to make dictionary attacks against the passwords more difficult.

htaccess php to html

Manchmal möchtest Du einfach, dass auf dem Webserver befindliche php Dateien eine html Endung bekommen. Dazu gibt es zwei Möglichkeiten die .htaccess anzupassen.

Ich persönlich bevorzuge die erste Variante. Bei einigen Providern wird das SetHandler per .htaccess nämlich nicht zugelassen. Mod_Rewrite ist hingegen gängiger. Edit: Igor Puschner , die zweite Variante sei sogar noch eine Ressourcenverschwendung!

Erste Möglichkeit: Alle html Aufrufe auf php Dateien weiterleiten

In diesem Fall bleiben die Dateien auf dem Server unangetastet und haben immer noch die Endung .php – werden aber durch die Endung .html aufgerufen. Vorsicht: Es entsteht ein potenzieller Duplicate Content, da der selbe Inhalt per http://tld/datei.html und http://tld/datei.php erreichbar ist! Hier muss zusätzlich unbedingt ein Canonical Tag eingebaut werden!

RewriteCond %{REQUEST_FILENAME} -f 
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+) -  
## Ende Existiert ein html file wirklich?
RewriteRule ^(.*)\.html$ $1\.php 

Diese Variante funktioniert nur, wenn mod_rewrite beim Provider aktiviert ist

Zweite Möglichkeit: php in html Dateien ausführen

In diesem Fall kann man dann alle PHP Skripte auch in einer .html Datei ausführen. In diesem Fall entsteht natürlich kein potenzieller Duplicate Content! von Apache empfohlen Diese Version hört auf .php, .php2 … .php6, html

<FilesMatch "\.(php?|html)$">
    SetHandler application/x-httpd-php
</FilesMatch>

Diese Variante „führt nur dazu dass der Server immer erstmal den Parser anschmeisst um das zurückgegebene File zu checken. Das ist sinnlose Ressourcenverschwendung.“ ~ Igor Puschner

.htpasswd Generator

Falls mehrere Benutzer angelegt werden sollen, können Sie die jeweiligen Codezeilen einfach untereinander in die .htpasswd Datei schreiben.

Legen Sie nun die .htpasswd Datei in einem Verzeichnis abseits der darauf verweisenden .htaccess Datei ab (siehe folgend Schritt 2).

Wichtig: Die .htpasswd sichert nicht das Verzeichnis und deren Unterverzeichnisse in der die Datei liegt ab, sondern die Datei dient lediglich als Liste aller möglichen Zugangsdaten. Die .htaccess Datei übernimmt die eigentliche Aufgabe das Verzeichnis und die Unterverzeichnisse mit einem Passwortschutz versehen. Es spielt daher nur eine Rolle wo die .htacces datei abgelegt wird.

Настройка файла .htaccess

Создайте с помощью обычного блокнота файл .htaccess (точка перед названием обязательна), в папке CMS, заполните его директивами указанными выше. Для заполнения директивы AuthUserFile необходимо указать полный путь к файлу с паролями .htpasswd, который находится в этой же папке.

Как узнать полный путь к файлу?

Полный путь к файлу, можно узнать с помощью функции phpinfo(). Результатом ее выполнения будет подробная таблица настроек веб-сервера.

Создайте файл info.php, с содержимым <?php phpinfo(); ?>, в директории CMS. Запустите файл через браузер. В полученной таблице, найдите переменную SCRIPT_FILENAME, которая содержит полный путь к файлу.

После получения нужных данных, обязательно удалите файл info.php, чтобы информация о настройках веб-сервера не стала общедоступной.


Рис 1. Полный путь к файлу. Результат выполнения функции phpinfo()

Скопируйте полученный путь, замените в нем имя файла, info.php на .htpasswd, и поместите его в директиву AuthUserFile.

AuthUserFile Z:/home/localhost/www/scripts/CMS/.htpasswd

Таким образом, готовый файл .htaccess, будет содержать следующие директивы:

AuthName "Authentication" 
AuthType Basic
AuthUserFile Z:/home/localhost/www/scripts/CMS/.htpasswd
require valid-user

What is the .Htaccess Redirect Generator doing?

Here’s an overview on what it does

For each rule there may be conditions that must be met before a rewrite rule is considered. These Rewrite Conditions are added using the RewriteCond command. The above one is used if the old path included a specific domain (HTTP_HOST) to use.

Dynamic URLs contain querystring parameters after a question mark (?). These have to be specified as a rewrite condition (QUERY_STRING). If no querystring is used then a blank rewrite condition is added to make sure it only matches URLs without query strings.The condition is written using Regular Expression (Regex) syntax.

Some Regex Basics

^ The start of a string
$ The end of a string
\. Dots need escaping with a slash as they have a meaning (any character)
\+ Plus needs escaping with a slash as it means «one or more» of the previous character

The above rewrite condition is added if the old path specifically used https:// in its URL, thus stating it’s secure.

Then the actual RewriteRule. This first states the path that must be matched for the rewrite rule to be used (once all the previous rewrite conditions are met). This is in a Regular Expression (Regex) syntax.

The generator creates a Regex string that enforces an exact match with the supplied path.

Next we add the page we are Permanently Redirecting to. This may be a relative path or a complete URL, depending on the format used in the original list. If the URL does not contain a question mark (?) then one is added. This is a signal to stop the querystring from the old page being added.

Finally a set of flags are included to define how the rewrite rule works. They specify it should be a 301 Permanent Redirect (R=301), the URL should not be escaped (NE), it should not be case sensitive (NC) and it is the last rule that needs to be processed (L).

SEO Consultation Services Amongst other things I offer Technical SEO Support at a Very Reasonable Rate.More Info…

Защита паролем

При помощи файла дополнительной конфигурации .htacces возможно установить пароль на директорию сайта, конкретный файл или группу файлов с одинаковым расширением. Чтобы установить пароль на директорию, в .htaccess необходимо написать:

AuthName «What do you want?«AuthType BasicAuthUserFile /home/сервер/ваш_сайт.ru/pass/.htpasswdrequire valid-user

Файл .htaccess, содержащий эти строки необходимо поместить в директорию, доступ к которой мы хотим закрыть. При попытке пользователя зайти на соответствующий раздел сайта сервер отдаст код статуса 401 (требуется авторизация) и выведет окно с полями для ввода имени пользователя и пароля и сообщением «What do you want?», указанным в директиве «AuthName» (допускаются только латинские символы и цифры).

Имена пользователей и пароли хранятся в файле .htpasswd. Путь к этому файлу задается в директиве «AuthUserFile».

Важно: путь к файлу .htpasswd указывается абсолютный, от корневого каталога сервера. Чтобы узнать путь к .htpasswd, который необходимо указать в .htaccess, можно создать файл php, содержащий:

Чтобы узнать путь к .htpasswd, который необходимо указать в .htaccess, можно создать файл php, содержащий:

&lt ?php echo $_SERVER; ? &gt

Закачать этот файл на сервер туда же, где находится .htpasswd, и открыть его в браузере. В сгенерированной странице Вы увидите абсолютный путь к директории, указанный от корневого каталога сервера.

Установить пароль на конкретный файл можно следующим образом:

&lt Files file.txt &gt AuthName «It’s not for all»AuthType BasicAuthUserFile /home/сервер/ваш_сайт.ru/pass/.htpasswd

Пароль на группу файлов:

&lt Files «\.(sql)$» &gtAuthName » It’s not for all «AuthType BasicAuthUserFile /home/сервер/ваш_сайт.ru/pass/.htpasswd


В данном случае все файлы, имеющие расширение .sql будут доступны только по паролю.

Schritt 3: Der Passwortschutz ist nun aktiv

Haben Sie alles richtig gemacht öffnet sich beim Aufrufen der Webseite bzw. des Verzeichnisses im Browser eine Abfrage für einen Benutzernamen und ein Passwort.

Um den Schutz wieder zu deaktivieren, löscht man einfach die .htpasswd Datei und die Codezeilen dafür aus der .htaccess Datei.

Beispiel:

Der Webspace für die Webseite «meinetestwebseite.de» hat einen Ordner «ablage» der mit einem Passwortschutz versehen werden soll. Die Ordnerstruktur auf dem Webspace ist wie folgt aufgebaut:

/meinetestwebseite — /ablage — /css — /img — /js — index.php

Um nun den Ordner «ablage» wie oben beschrieben zu schützen muss die Struktur so erweitert werden:

/meinetestwebseite— /ablage — — .htaccess— /css— /img— /js— index.php /zugaenge — .htpasswd

Versucht man nun «www.meinetestwebseite.de/ablage» aufzurufen erscheint ein Passwortschutz.

Passwortschutz für bestimmten IP-Adressen deaktivieren

Order deny,allow Deny from all AuthName «Passwortgeschützter Bereich» AuthUserFile /pfad/zur/datei/.htpasswd AuthType Basic Require valid-user allow from 000.000.000.000 allow from 111.111.111.111 Satisfy Any

Внимание!

Относительные пути работать не будут!

Путь от корня сервера, можно узнать, спросив у администрации сервера, либо можно попробовать выяснить его самим. Для этого выполните функцию phpinfo(). На экран будет выведена фиолетовая таблица. Значение абсолютного пути от корня сервера можно посмотреть в переменных: doc_root, open_basedir, DOCUMENT_ROOT.Директива Require определяет кому разрешен доступ к закрытой области. Например,

  • require valid-user — разрешен доступ всем прошедшим проверку
  • require user admin alex mango — разрешен доступ только посетителям с именами admin, alex, mango. Естественно, они должны пройти аутентификацию.
  • require group admins — разрешен доступ всем пользователям из группы admins

Htpasswd Generator

Htpasswd Generator creates the file .htpasswd which is a text file used by Apache and other applications to store usernames and password for HTTP authentication. Apache .htpasswd files may contain multiple types of passwords; some may have MD5-encrypted passwords while others in the same file may have passwords encrypted with crypt and/or SHA-1. Usernames are limited to 255 bytes and may not include the character .

Apache 2.4+ htpasswd encrypts passwords using either bcrypt, a version of MD5 modified for Apache, SHA1, or the system’s crypt routine. Files managed by htpasswd may contain a mixture of different encoding types of passwords; some user records may have bcrypt or MD5-encrypted passwords while others in the same file may have passwords encrypted with crypt().

Как обезопасить свой пароль

Наличие надежного пароля

1. Не используйте один и тот же пароль для нескольких учетных записей. Если хакер взломает одну из ваших учетных записей, другие учетные записи могут уже не быть в безопасности.

2. Пароль должен быть максимально длинным и сложным, не менее 16 символов и включать заглавные буквы, строчные буквы, цифры и специальные символы.

3. Не используйте свое имя, даты рождения, номера удостоверений личности и любую личную информацию в своем пароле, даже если имена ваших семей, друзей и домашних животных не очевидны для использования в пароле.

4. Избегайте использования слабых и коротких паролей, таких как 123456, password, qwerty, iloveyou, эти часто используемые слова распознаются как худшие пароли. Если вы используете какой-либо из них, хакеры без труда взломают ваши учетные записи. Очевидно, что в связи с преобладанием атак методом «перебор» и «словарь», а также резким улучшением производительности компьютера эти пароли уязвимы для хакеров.

Держите пароль в безопасности – это хорошая привычка

1. Не записывайте свои пароли. Обычно пользователи записывают пароли в свои блокноты или заметки, чтобы не забыть об этом. Если пользователи делают это дома, это будет безопаснее. Но если пароль записан в рабочей среде, это, несомненно, увеличит риск утечки.

2. Не стесняйтесь менять пароли, хотя многие профессиональные рекомендации показали, что это хорошая привычка регулярно менять пароли (например, 1 раз в месяц, в 3 месяца, полгода и т.д.). Однако недавнее исследование Федеральной торговой комиссии США (FTC) показало, что регулярная смена паролей раздражает и делает их еще проще. Согласно опросу, 46% модифицированных паролей, скорее всего, будут угаданы хакерами. Поэтому наш последний совет заключается в том, что не стесняйтесь менять сложные пароли, если только вы не думаете, что они стали известны сторонним лицам.

3. Если вы часто используете ПК в офисе или в общественном месте, рекомендуется не сохранять пароль в веб-браузере (Chrome, Firefox, Safari, Opera, IE), поскольку пароль, хранящийся в браузере, легко раскрывается. другим пользователям ПК.

4. Не разглашайте и не используйте свои пароли в незнакомой среде и на неизвестных устройствах. В связи с необходимостью работы или развлечений люди часто будут использовать незнакомые компьютеры. Когда вы вводите пароль для входа в свою учетную запись, возможно, ваш пароль был записан с помощью специальной программы записи с клавиатуры. Даже если ваш 18-значный пароль представляет собой комбинацию символов, цифр и букв, ваш пароль все равно будет полностью записан с помощью этих программ. Поэтому, когда вам необходимо войти в учетную запись на незнакомом устройстве, мы рекомендуем использовать для входа экранную клавиатуру.

Многоуровневая гарантия безопасности

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

2. Научитесь использовать средства безопасности для защиты ваших паролей и учетных записей. Несмотря на то, что пароли, сгенерированные генератором случайных паролей, надежны и безопасны, но большинству людей их трудно запомнить, поэтому Менеджер паролей поможет вам лучше управлять случайными паролями, вам нужно только установить мастер-пароль для этого инструмента и мастер пароль — это ключ от коробки, в которой хранятся все остальные ваши пароли. Поэтому вы всегда должны помнить мастер-пароль, и пароль должен быть максимально длинным и сложным. Кроме того, благодаря популярности механизмов проверки безопасности между устройствами, когда вы пытаетесь войти в свою учетную запись на своем компьютере, вам необходимо проверить соответствующую информацию о безопасности на вашем мобильном телефоне. Несомненно, это значительно повышает уровень безопасности вашей учетной записи. Кроме того, биометрия (например, распознавание отпечатков пальцев и распознавание лиц) будет лучше защищать вашу необходимую информацию.

Создание файла паролей

Теперь на сервере доступна команда htpasswd, которая позволяет создать файл паролей, необходимый серверу Apache для авторизации пользователей. Создайте скрытый файл .htpasswd в каталоге /etc/apache2.

При первом запуске данной утилиты нужно использовать флаг –c, который и создаст необходимый файл. Укажите имя пользователя в конце команды, чтобы создать новую запись в файле:

Примечание: Замените условное имя пользователяapache настройка авторизации 8host своим именем.

Программа предложит создать и подтвердить пароль для этого пользователя.

Чтобы добавить других пользователей в файл паролей, используйте команду htpasswd без флага –с:

Файл паролей содержит имена пользователей и их пароли в зашифрованном виде:


С этим читают