Насколько безопасная авторизация через htpasswd. Простое ограничение доступа по паролю. Доступ только пользователей из группы admins

Скачать Viber 28.02.2019
Скачать Viber

Лично я использую.htaccess для паролирования папок своего сайта. Хороший пароль – залог безопасности, это аксиома!

Для начала рассмотрим пример, а потом поясним что это значит:

require valid-user

Данный файл нужно положить в ту директории, на которую мы хотим поставить пароль.

Директива AuthName выводит сообщение при запросе пароля, все сообщения необходимо писать в одну строчку, синтаксис директивы тривиален:

AuthName «SEE TEXT»

Директива AuthType выбирает тип аутентификации. Возможны следующие типы: Basic или Digest . Второй может не поддерживаться некоторыми браузерами, поэтому пользоваться им не рекомендуется.

AuthType Basic | Digest

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

Создать данный файл можно двумя способами. Если у Вас установлена операционная система семейства Windows вы можете скачать программу которая генирирует данный файл. Либо подключится к серверу по SSH и воспользоваться утилитой htpasswd. Либо воспользоваться той же утилитой, входящей в поставку web-сервера Apache (в случае если он установлен, если нет качайте для Win), c помощью командной строки Windows ввести: htpasswd.exe -cm .htpasswd admin , где:

Cm – это команды на создание файла с использованием MD5;

Htpasswd – имя файла, который будет создан;

admin – имя пользователя.

После запуска Вам будет выдан запрос на ввод пароля и подтверждение. В результате будет создан файл .htpasswd примерно такого содержания:

admin:$apr1$9o0…..$3nAi6rAX1RtHDzL7PPW/i/

что соответствует логину – admin и паролю – password.

Кстати таким образом можно закрывать не только директории, но и отдельные файлы или группы файлов. При добавлении пользователя в существующий файл команду –cm нужно изменить на –m .

В случае подключения к серверу по SSH и использования утилиты htpasswd без параметров мы увидим:

kjan ~ # htpasswd

htpasswd [-cmdps] passwordfile username

htpasswd -b passwordfile username password

C Create a new file.

Здесь не будут рассматриваться все параметры этой команды, но вы можете сами прочитать подробности, запустив htpasswd в unix shell или ознакомившись с соответствующей страницей документации по Apache.

Итак, изначально у нас еще нет файла с паролями и нам нужно его создать:

kjan ~ # htpasswd -c authfile test1

Re-type new password

Adding password for user test1

После выполнения данной операции htpasswd создаст файл passwords , в котором окажется пользователь test1 и его пароль в зашифрованном виде:

kjan ~ $ cat .authfile

test1:zgco1KREjBY8M

А теперь мы хотим добавить еще одного пользователя. Так как файл с паролями у нас уже есть, мы просто не будем использовать ключ «-c» :

kjan~ # htpasswd .authfile test2

Re-type new password:

Adding password for user test2

kjan~ $ cat .authfile

test1:zgco1KREjBY8M

test2:eN3uA6t0kzV1c

Вернемся к описанию директив паролирования директорий. Директива Require определяет пользователей, которые могут получить доступ

Require USER_NAME | valid-user

Указывая valid-user вы разрешаете доступ всем пользователям, перечисленным в файле паролей.

AuthName «Protected area, need authorization»

AuthUserFile /home/t/test/.authfile

require valid-user

Следует помнить, что при таком ограничении доступа пароли передаются по каналам связи в открытом виде и при определенных обстоятельствах могут быть перехвачены злоумышленниками. Поэтому в целях безопасности рекомендуется организовывать доступ к закрытым областям веб-сайта через защищенное SSL-соединение.

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

Директивы файла. htaccess.

AuthName "Текст выводится в окне авторизации" AuthType Basic AuthUserFile Полный путь/.htpasswd require valid-user

AuthName - текст содержащийся в данной директиве, выводится в окне ввода пароля. Он должен быть написан в одну строку и заключен в двойные кавычки.

AuthType - типы аутентификации: Basic или Digest . Рекомендуется использовать первый, т.к. второй поддерживается не всеми браузерами.

AuthUserFile - полный путь к файлу с логинами и паролями, для аутентификации пользователей. Пароли содержаться в шифрованном виде. Рекомендуется хранить данный файл в папке, к которой нет доступа для пользователей, это необходимо, чтобы предотвратить кражу паролей.

require valid-user - директива предписывает, что к URL получают доступ только, пользователи, успешно прошедшие аутентификацию.

Где можно реализовать?

Авторизацию можно прикрутить к любой директории вашего сайта, будь то корень, либо папка из иерархии. Очень часто можно встретить защиту с помощью .htaccess , для входя в “Панель управления” сайтом. Также с помощью этой технологии можно ограничить доступ к папкам, где лежат конфиденциальные данные.

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

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

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

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

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

Создайте файл info.php, с содержимым , в директории 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

Создание файла. htpasswd

Переходим к созданию файла с паролями . htpasswd , для этого воспользуемся утилитой htpasswd.exe . Работать с которой нужно через командную строку. Далее рассмотрены примеры работы с утилитой:

. Создать новый файл с паролями , назначить ему имя.htpasswd, задать шифрование паролей по алгоритму MD5 и добавить в него логин admin:

Htpasswd -cm .htpasswd admin

-cm - ключи утилиты:

- указывает, что необходимо создать новый файл

-m -шифрует пароли по алгоритму MD5

.htpasswd - имя файла с паролями

admin - логин

Рис. 2. Создание нового файла с паролями, утилитой htpasswd.exe

. Добавить в уже существующий файл с паролями нового пользователя . Для этого нужно в команде указать один ключ -m, ключ -c, опустить.

Htpasswd -m .htpasswd user

Рис. 3. Добавление в уже существующий файл с паролями нового пользователя, утилитой htpasswd.exe.

. Чтобы изменить пароль для существующего пользователя, используйте ту же команду, что и при добавлении.

Htpasswd -m .htpasswd user

Рис 4. Изменение пароля для существующего пользователя, с помощью утилиты htpasswd.exe.

После создания файла с паролями, поместите его в директорию, путь к которой указан в директиве AuthUserFile файла.htaccess. (в нашем случае в папку CMS)

Доступ к данным авторизации, через переменные массива $_SERVER

После успешного прохождения аутентификации, логин и пароль, вбитые пользователем, помещаются в суперглобальный массив$_SERVER, который можно обрабатывать с помощью php скрипта.

  • $_SERVER["PHP_AUTH_USER"] - логин;
  • $_SERVER["PHP_AUTH_PW"] - пароль;

Результат

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

Рис. 5. Окно аутентификации.

Подведем итоги:

  • С помощью конфигурационного файла .htaccess , можно ограничить доступ к любой директории вашего сайта;
  • Чтобы создать файл .htaccess воспользуйтесь обычным блокнотом;
  • Чтобы указать полный путь к файлу с паролями .htpasswd , в директиве AuthUserFile файла .htaccess , воспользуйтесь функцией phpinfo();
  • Для создания файла с паролями.htpasswd , воспользуйтесь утилитой htpasswd.exe ;
  • Размещайте файл с паролями .htpasswd , в папке, к которой нет доступа для пользователей , чтобы предотвратить кражу паролей;
  • Доступ к данным авторизации осуществляется через переменные суперглобального массива $_SERVER : $_SERVER["PHP_AUTH_USER"] , $_SERVER["PHP_AUTH_PW"];

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

Базовая аутентификация

В данной статье будет рассмотрен самый простой и доступный способ защиты - базовая аутентификация.

Замечание

Аутентификация - процесс, с помощью которого проверяется, что некто является именно тем, за кого он себя выдает. Как правило, проверка включает в себя ввод имени и пароля.

Рассмотрим, как работает базовая аутентификация.
При обращении посетителя в защищаемую директорию, сервер Apache в ответ на запрос посылает заголовок с кодом 401 (401 authentication required header). Браузер посетителя принимает заголовок с кодом 401 и выводит окно с полями для ввода имени пользователя и пароля. После ввода имени и пароля эти данные отсылаются назад серверу, который проверяет имя пользователя на предмет нахождения в специальном списке, а пароль на правильность. Если все верно, то посетитель получает доступ к ресурсу. Вместе с заголовком браузеру посылается специальной имя, называемое областью действия. Браузер кэширует не только имя и пароль, чтобы передавать их при каждом запросе, но и область действия. Благодаря этому, ввод имени и пароля в защищаемой директории осуществляется только раз. В противном случае их необходимо было бы вводить при каждом запросе к защищаемой директории. Кэширование параметров аутентификации (имя, пароль, область действия), обычно осуществляет только в пределах одного сеанса.

Замечание

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

Замечание

WEB-сервер Apache поддерживает еще один вид защиты - digest-аутентификацию. При digest-аутентификации пароль передается не в открытом виде, а в виде хеш-кода, вычисленному по алгоритму MD5. Поэтому пароль не может быть перехвачен при сканировании трафика. Но, к сожалению, для использования digest-аутентификации необходимо установить на сервер специальный модуль - mod_auth_digest. А это находится только в компетенции администрации сервера. Также, до недавнего времени, digest-аутентификация поддерживалась не всеми видами браузеров.

Защита сайта - это просто

Для того чтобы защитить сайт, нужно выполнить следующую последовательность действий: создать файл с паролями, переписать его на сервер, создать файл.htaccess и тоже переписать его на сервер.
Для организации защиты понадобится.

  1. WEB-сайт и FTP-доступ к нему.
  2. Права на создание файлов.htpaccess и организацию защиты с помощью них.
  3. Утилита генерации паролей htpasswd.exe

Проверка работы файла.htaccess на сервере

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

Замечание

Удобно создавать файлы.htaccess с помощью встроенного редактора в оболочках Far, WindowsCommander, TotalCommander и т.п., а также в редакторе Блокнот.

Замечание

Чтобы блокнот не подставлял автоматически расширение txt, в диалоге сохранения в выпадающем списке "тип файла" следует выбрать опцию "Все файлы".


Рис. Сохранение файлов.htaccess в блокноте

Проверка работы.htaccess

AuthType Basic
AuthName admin
require valid-user

Затем, через FTP-доступ, перепишите файл.htaccess на сайт, в ту директорию, которую вы хотите защитить.

Замечание

Действие файлов.htaccess распространяется не только на ту директорию, где лежит файл, но и на все поддиректрии, лежащие уровнем ниже.

Далее через браузер обратитесь к этой директории. Если Вы защищаете директорию admin и переписали туда файл.htaccess, то для проверки Вам следует вписать в адресную строку браузера следующий URL: http://www.mysite.ru/admin/.

Если после этого Вам открылся запрос на ввод логина и пароля, как на рисунке ниже, то тестирование прошло успешно и можно продолжать защиту директории.

Рис. Окно ввода логина и пароля


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

Замечание

Если по каким либо причинам Вы не можете удалить файл.htaccess, то создайте пустой файл.htaccess и замените им файл, лежащий на сервере.

Создание файла с паролями.htpasswd

Файл с паролями создается утилитой htpasswd.exe . Если у Вас на машине установлен WEB-сервер Apache, то данная утилита находится в директории с установленным Apache -ем в подкаталоге bin .

Замечание

Если у Вас не установлен Apache, то утилиту htpasswd.exe можете скачать по ссылке: .

Для работы с утилитой htpasswd.exe необходим интерфейс работы с командной строкой. Интерфейсом работы с командной строкой обладают такие программы как Far, WindowsCommander и т.п. Здесь будет рассмотрена работа с командной строкой с помощью утилиты cmd, которая входит в поставку Windows 2000/XP и т.п.
Нажмите "Пуск"->"Выполнить" , введите в строку ввода cmd и нажмите ОК . Вам откроется окно утилиты CMD.

Рис. Окно утилиты CMD


Далее необходимо перейти в директорию, где находится утилита htpasswd.exe . Допустим, сервер Apache установлен в директории с:/Apache2, тогда введите в командную строку команду: cd../../apache2/bin и нажмите ввод.


Вы перешли в директорию с:Apache2in. Теперь нужно дать команду на создание файла с паролем. Введите в командную строку следующее:

Htpasswd -cm .htpasswd admin

  • -cm - это ключи для утилиты. Ключ с - указывает, что необходимо создать новый файл с паролями. Если файл с таким именем уже существует, то он будет перезаписан. Ключ m - определяет шифрование по алгоритму MD5.
    .htpasswd - имя файла с паролями (можете использовать любое имя).
    admin - имя посетителя, которому будет разрешен доступ в закрытую область сайта.

В ответ, должен появится запрос на ввод пароля и его повтор. Если все правильно, то в завершении появится сообщение: Adding password for user admin. И в директории c:Apache2in появится файл.htpasswd, к котором будет находиться строка с именем пользователя и хеш-кодом его пароля. Для того, что бы в тот же файл.htpasswd добавить еще одного пользователя следует убрать ключ -c из команды запуска утилиты htpasswd.exe

Htpasswd -m .htpasswd admin


Замечание

Если файл с паролями не был создан, то возможно, некоторые ключи утилиты не поддерживаются в Вашей операционной системе. Например, иногда не поддерживается ключ m. В этом случае, Вам нужно ввести htpasswd -c .htpasswd admin
Для того, чтобы посмотреть ключи и параметры работы утилиты введите htpasswd.exe /? Вам будет выдано описание интерфейса.

Итак, файл с паролями создан. Теперь Вам необходимо переписать его на сервер. Файлы с паролями очень желательно класть выше корневой директории сайта - туда, куда не будет доступа посетителям.
Если это невозможно, то файлы с паролями следует обязательно защитить. Это можно сделать с помощью файлов.htaccess. Чтобы защитить файлы с паролями создайте файл со строками, представленными в следующем листинге.

Защита файлов.htpasswd


deny from all

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

Создание файла.htaccess

Для защиты директории могут использоваться следующие директивы:

  • AuthType - Тип используемой аутентификации. Для базовой аутентификации эта директива должна иметь значение: Basic
    AuthName - Имя области действия аутентификации. Текст, помогающий посетителю понять, куда он пытается получить доступ. Например, может быть написано: "Private zone. Only for administrator!"
    AuthUserFile - путь к файлу с паролями (.htpasswd).
    AuthGroupFile - путь к файлу групп, если он существует.
    Require - Одно или несколько требований, которые должны быть выполнены для получения доступа к закрытой области.

Пример файла.htaccess

AuthType Basic



require group admins

Следует более подробно описать директивы AuthUserFile и AuthGroupFile. В них прописываются абсолютные пути к соответствующим файлам от корня сервера.

Внимание!

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

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

  • require valid-user - разрешен доступ всем прошедшим проверку
  • require user admin alex mango - разрешен доступ только посетителям с именами admin, alex, mango. Естественно, они должны пройти аутентификацию.
    AuthName "Private zone. Only for administrator!"
    AuthUserFile /usr/host/mysite/.htpasswd
    require valid-user

    Доступ только пользователям admin и root

    AuthType Basic
    AuthName "Private zone. Only for administrator!"
    AuthUserFile /usr/host/mysite/.htpasswd
    require user admin root

    Доступ только пользователей из группы admins

    AuthType Basic
    AuthName "Private zone. Only for administrator!"
    AuthUserFile /usr/host/mysite/.htpasswd
    AuthGroupFile /usr/host/mysite/group
    require group admins

    Запрет доступа только к файлу private.zip


    AuthType Basic
    AuthName "Private zone. Only for administrator!"
    AuthUserFile /usr/host/mysite/.htpasswd
    require valid-user

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

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



Запретить доступ только с конкретного ip-адреса:


deny from all
order allow deny
deny from all
deny from ip_адрес_пользователя


"ip_адрес_пользователя " необходимо заменить на конкретный ip-адрес.

Чтобы разрешить доступ только с конкретного ip-адреса, можно написать:


order allow deny
deny from all
allow from ip_адрес_пользователя


Так же с помощью файла.htaccess можно запретить доступ к конкретному файлу. Например, запретим доступ пользователей к самому файлу.htaccess. При этом сервер сможет использовать инструкции, указанные в файле:


< Files .htaccess >
order allow,deny
deny from all

Защита файлов

Наверное, всем пользователям интернета попадались одинаковые статьи на различных сайтах. Очень часто бывает, что эти статьи попросту сворованы с других ресурсов. Поисковые системы стараются бороться с дублированными страницами, но выбор ими первоисточника не всегда оказывается верным. И это является серьезной проблемой для копирайтеров и веб-мастеров, так как на написание качественного контента, порой, уходит большое количество сил и времени, и очень неприятно обзавестись штрафными санкциями поисковиков за то, что кто-то скопировал контент с Вашего сайта. А зачастую, вместе с текстом воруют так же и изображения. Причем, многие воры, чтобы не перегружать свой сервер, не скачивают изображение с чужих сайтов, а просто ссылаются на файлы, находящиеся на сайте-первоисточнике. Вставка ссылки на файл, находящийся на другом сайте называется хотлинком (hotlink). Помимо ссылок на изображения этого могут быть так же ссылки и на другие файлы, например, доступные для скачивания. Такие хотлинки не только крайне неприятны для автора контента. Они так же перегружает сервер первоисточника.

Защитить файлы от хотлинка при помощи файла.htaccess можно добавив в него две строчки:



ваш_сайт.ru .*$


В скобочках через символ "|" указаны расширения файлов, доступ к которым будет запрещен всем, за исключением сервера и пользователей сайта ваш_сайт.ru

Чтобы открыть доступ к файлам с этим расширением для пользователей поисковых систем необходимо исключить на них запрет так же, как на ваш_сайт.ru:


RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?ваш_сайт.ru
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yandex.ru
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?yahoo.
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?google.
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?bing.
RewriteRule \.(jpe?g|bmp|gif|png|css|zip|pdf|txt|doc)$ -

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

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


AuthName "What do you want? "
AuthType Basic
AuthUserFile
require valid-user


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

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

Важно: путь к файлу.htpasswd указывается абсолютный, от корневого каталога сервера.

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


< ?php echo $_SERVER["DOCUMENT_ROOT"]; ? >


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

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


< Files file.txt >
AuthName "It"s not for all"
AuthType Basic
AuthUserFile /home/сервер/ваш_сайт.ru/pass/.htpasswd


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


< Files "\.(sql)$" >
AuthName " It"s not for all "
AuthType Basic
AuthUserFile /home/сервер/ваш_сайт.ru/pass/.htpasswd


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



С некоторых пор в TheBat (непонятно по какой причине) перестает корректно работать встроенная база сертификатов для SSL.

При проверке посты выскакивает ошибка:

Неизвестный сертификат СА
Сервер не представил корневой сертификат в сессии и соответствующий корневой сертификат не найден в адресной книге.
Это соедининение не может быть секретным. Пожалуйста
свяжитесь с администратором вашего сервера.

И предлагается на выбор ответы - ДА / НЕТ. И так каждый раз когда снимаешь почту.

Решение

В этом случае случае нужно заменить стандарт реализации S/MIME и TLS на Microsoft CryptoAPI в настройках TheBat!

Так как мне надо было все файлы объединить в один, то я сначала преобразовал все doc файлы в единый pdf файл (с помощью программы Acrobat), а затем уже через онлайн-конвертер перевёл в fb2. Можно же конвертировать файлы и по отдельности. Форматы могут быть совершенно любые (исходные) и doc, и jpg, и даже zip архив!

Название сайта соответствующее сути:) Онлайн Фотошоп.

Апдейт май 2015

Я нашел еще один замечательный сайт! Еще удобнее и функциональнее для создания абсолютно произвольного коллажа! Это сайт http://www.fotor.com/ru/collage/ . Пользуйтесь на здоровье. И сам буду пользоваться.

Столкнулся в жизни с ремонтом электроплиты. Уже много что делал, много чему научился, но как-то с плитками дела имел мало. Нужна была замена контактов на регуляторах и конфорок. Возник вопрос - как определить диаметр конфорки у электроплиты?

Ответ оказался прост. Не надо ничего мерить, можно спокойной на глаз определить какой вам нужен размер.

Самая маленькая конфорка - это 145 миллиметров (14,5 сантиметров)

Средняя конфорка - это 180 миллиметров (18 сантиметров).

И, наконец, самая большая конфорка - это 225 миллиметров (22,5 сантиметров).

Достаточно на глаз определить размер и понять какого диаметра вам нужна конфорка. Я когда этого не знал - парился с этими размерами, не знал как измерять, по какому краю ориентироваться и т.д. Теперь я мудр:) Надеюсь и вам помог!

В жизни столкнулся с такой задачей. Думаю, что не я один такой.



Рекомендуем почитать

Наверх