Как программировать с Yii2: Вход через социальные сервисы (Twitter, Google, Facebook)
- Информация о материале
- Автор: Leroy
- Категория: Yii
- Просмотров: 23837
Yii2 позволяет легко создать механизм регистрации/входа/профиля через расширение yii2-user.
После его установки, на сайте появляются: регистрация пользователей, личный кабинет, сброс пароля и так далее. Полный список всех разделов этого расширения довольно большой:
- /user/registration/register Регистрация
- /user/registration/resend Повторная отправка инструкций по регистрации
- /user/registration/confirm Подтверждение пароля
- /user/security/login Форма авторизации
- /user/security/logout Выход(работает только через POST)
- /user/recovery/request Востановление пароля
- /user/settings/profile Настройки профиля
- /user/settings/account Настройки аккаунта (email, username, password)
- /user/settings/networks Привязанные социальные аккаунты
- /user/profile/show Профиль пользователя (требует id)
- /user/admin/index Менеджер пользователей
После того, как механизм работы с пользователями налажен, на сайт надо прикрутить регистрацию через соц. сети. Как это сделать будет рассказано тут:
Защита сайта от DDOS атак
- Информация о материале
- Автор: Leroy
- Категория: Защита сайта
- Просмотров: 14399
Как создать ftp пользователя через SSH
-
Добавляем нового пользователя: adduser newusername
-
Устанавливаем пароль для него: passwd newusername
-
Привязываем пользователя к папке:
usermod -d /target/directory username
Показывает все локальные подлючения и кто их слушает. Так можно узнать к примеру на каком порту вистя mysql и redis
netstat -nlp
Строго говоря, защититься от грамотной DDOS атаки, на рядовом сервере практически невозможно. Защиты просто нет. Любой хостер или админ разведет руками если Ваш сайт захотят сломать и вывести из строя. Под DDOS атаками падают сервера Пентагона и Google, что говорить про наш VDS сервер за 300 рублей в месяц. Однако, нужно в первую очередь оценить уровень нападающего. Если у Вас блог с посещалкой 500 человек то скорее всего за вас не будут браться профессиональные хакеры. Вас будет взламывать/парсить/спамить школьник или студент, или сосед, которому вы вчера не заняли денег. Он будет делать это без должной сноровки, но проблема в том, что он может! это сделать. Практически любой виртуальный хостинг, или даже выделенный сервер, может "завалить" один компьютер, без серьезного канала.
Есть такая программа LOIC, с помощью нее любой школьник может вывести из строя Ваш сервер, не давая ему подняться
Это что касается DDOS'а. Можно надолго отправить сервер в DOWN на какой-нибудь "тяжелой" CMS просто открыв 10(20,30,1000) вкладок в браузере и запустить автообновление, через каждую секунду. Или написав простейший парсер на php, который будет делать тоже самое. Каждый такой запрос на неподготовленную CMS (без кеширования), c подключением к БД и генерацией страницы, приведет к ожидаемому результату: на виртуальном хостинге ваш сайт попросту заблокируют, а на выделенном он просто перестанет работать. Мой сайт содержит большое число статей про написание парсеров и не удивительно, что в первую очередь работу парсера отрабатывают на нем же.
На нормальном виртуальном хостинге, у конторы, которая следит за своими серверами, есть своя защита от атак. Но чаще хостер просто блокирует сайт, который потребляет слишком много ресурсов. За примером далеко ходить не надо: beget.ru после превышения определенной нагрузки на сайт, выдает место стартовой страницы - заглушку. Если у пользователя нормальный браузер с включенным JavaScript, то заглушка добавляет определенную cookie и перезагружает страницу, если нет, то бот ничего кроме нее не увидит. Очевидная проблема - поисковики. Им нет дела до ваших проблем и они тоже боты. Такая блокировка - отрезает им доступ к сайту и вы вылетаете из всех индексов.
Печальный итог. Другое дело, что от подобных атак можно и нужно защищаться. И сделать это можете вы сами. Далее будет дилетантские советы от непрофессионала - не профессионалам в области защиты сервера. То, что вы можете сделать сами, но не знаете как. Опыт, который получен в результате недавней атаки на этот сайт.
Виртуальный сервер
На виртуальном хостинге за 150 рублей в месяц, сделать вы можете ни много. Но все же кое что можете.
Первое, что нужно сделать - это написать службе поддержки вашего хостинга. Это их сервер и они обязаны поддерживать его работоспособность. В большинстве случаев зловредный ip адрес злоумышленника заблокируют на уровне реального сервера и делать ничего, описанного ниже, Вам не придется. Если этого не произошло, то добро пожаловать под кат.
Как написать свой фреймворк на php. Роутер и Шаблонизатор. Урок 3
- Информация о материале
- Автор: Leroy
- Категория: PHP
- Просмотров: 14947
IDeal
В предыдущих постах мы разработали минимальную структуру фреймворка. В этой статье, наведем немного лоска - добавим простенькую тему с bootstrap'ом, меню и подробнее рассмотрим работу шаблонизатора и роутера (маршрутизатора сайта).
Роутер
В прошлой статье мы создали роутер, который используя логику регулярных выражений распознает входящую sef ссылку и направляет на нужный контроллер и его метод.
Т.е. из такой строки
/user/profile/12
роутер делает массив
array('controller'=>'user','action'=>'profile', 'id'=>15)
Мы не стали в прошлый раз писать пример использования такого решения. Исправим ситуацию, но перед этим доработаем роутер.
Перенесем массив правил роутера в конфигурационный файл фреймворка. Этот массив будут заполнять разработчики, которые будут писать сайты на нашем фреймворке. Поэтому он должен быть максимально доступен.
... 'router' => array( '([a-z0-9+_\-]+)/([a-z0-9+_\-]+)/([0-9]+)' => '$controller/$action/$id', '([a-z0-9+_\-]+)/([a-z0-9+_\-]+)' => '$controller/$action', '([a-z0-9+_\-]+)(/)?' => '$controller', ), ...
Кроме того вы можете видеть, что мы изменили правую часть массива.
Создаем собственную SEF систему для Joomla
- Информация о материале
- Автор: Leroy
- Категория: Документация для разработчиков Joomla
- Просмотров: 10738
В Joomla есть встроенная система генерации SEF ссылок и обратно. По тем или иным причинам она может Вам не подойти. К примеру, когда этот блог переезжал с самописной системы на Joomla, то потребовалось восстановить старую систему SEF логики.
Для статей, нужна была такая ссылка
http://xdan.ru/deploying-an-update-server.html
Для категорий такая
http://xdan.ru/categories/cms/joomla/doc
Реализовать подобное в Joomle можно рядом способов. Есть очень мощные и известные расширения sh404sef или joomSEF. Эти расширения достаточно удобные и гибкие, для подобной задачи. Однако достаточно часто они работают не так как требуется и исправить ситуацию порой очень сложно. И так как у нас технический блог, то мы напишем собственное расширение, которое будет заниматься подобной задачей, тем более что сделать это довольно просто.
Для начала, напишем заготовку плагина. Для его работы потребуется создать два файла <имя плагина>.xml и <имя плагина>.php К примеру, если мы назовем наш плагин sefmaster, то у нас будет два файла sefmaster.php и sefmaster.xml
Как написать свой фреймворк на php. Урок 2
- Информация о материале
- Категория: PHP
- Просмотров: 15441
В прошлой статье мы разобрали структуру фреймворка, но не его реализацию. Для того чтобы фреймворк начал функционаровать, нам потребуется его доработать. Для начала подключим файл конфигурацию. Мы обозначили файл, как config.php, но никак его не использовали.
По опыту разработки сразу оговорюсь, удобно использовать два файла конфигурации: первый для общих настроек - название сайта, адрес домена, время жизни куков, и второй для настроек подключения к БД. Это в первую очередь качается разработки на фреймворке. Так как для такой системы важно быстро развернуть ее на локальном компьютере и зачем перенести на сервер. При таком переносе, один из конфигов будет общим, а второй будет заполнен лишь единожды для каждого сервера. Поэтому определим два файла config.php и config.db.php
Структура этих файлов должна быть как можно проще. Идеальный вариант - ini файлы. Но для них нужно писать отдельные парсеры и они доступны из вне. Поэтому не будем изобретать велосипед, а сделаем простой php ассоциативный массив с парами ключ-значение.