• Как найти первое совпадение?

    @sovik945
    веб-программист
    Предлагаю написать 2 инструкции:

    RewriteRule ^([^/]+)/?$ /index.php?p=$1 [L,QSA]
    RewriteRule ^([^/]+)/(.+)/?$ /index.php?p=$1&p2=$2 [L,QSA]
    Ответ написан
    Комментировать
  • Чем бесплатные движки (PhpBB) хуже платных?

    Moskus
    @Moskus
    Разница в том, что при использовании коммерческих продуктов вы верите в поддержку разработчиков, а при использовании opensource - в самостоятельную поддержку, своими силами, или в поддержку какой-то сторонней компании, которая специализируется на коммерческих услугах пользователям opensource. Это - фундаментальная разница.
    При этом, в общем случае, нет оснований считать, что коммерческая поддержка автоматически означает качество - криворукие программисты и админы есть и на зарплате у крупных фирм.
    Остальное вообще никак прямо не связано с тем, является ли продукт коммерческим.
    Ответ написан
    3 комментария
  • Как изучить язык баз данных SQL?

    @AlexndrNovikov
    Solution Architect in Spiral Scout
    Книги это, конечно, здорово, но как показывает практика, большинство книги либо забрасывает, либо просто читает и не особо новые знания впитывает. (если речь о начинающих разработчиках, которые прям с нуля начинают книгу читать)

    А самый логичный способ что-то изучить - это практика, практика и еще раз практика. Если нет реального проекта с реальными проблемами - рекомендовал бы пару ресурсов: sql-ex и pgexercises, там можно поработать как с совсем простыми и примитивными запросами, так и с гораздо более сложными.

    Ну а овладев азами можно уже и книгу брать, чтобы закрыть пробелы, либо документацию по конкретной СУБД
    Ответ написан
    3 комментария
  • Как изучить язык баз данных SQL?

    @poimanoo
    Я перед собеседованием на должность sql-джуна будучи полным нулем за ночь порешал задачки на этом сайте и на следующий день решил все предложенные задачи и был принят) Скажу так - я бы посоветовал порешать эти задачи, они там предлагаются по нарастанию сложности и подкреплены теорией, за которой вам не нужно лишний раз лезть в учебники. Уверяю, с каждым десятком решенных задач Вы будете чувствовать себя гуру sql) Спустя задачек 30, когда у Вас сформируется представление о том, что из себя представляет SQL на деле, тогда можно приступать к литературе, поверьте, после практики гораздо легче воспринимать материал, ибо уже имеется представление, о чем речь.
    По литературе(с небольшими пояснениями):

    1. Введение в системы баз данных(Автор C.J.Date) - на мой взгляд очень доступное и максимально компактное описание того, на чем базируется SQL, разжеваны основные понятия, рассмотрены нормальные формы, а после предлагаются задачки.

    2. SQL Полное руководство - тут понятно по названию, здесь можно найти описание всех возможностей. Ищите наиболее позднее издание(у меня третье, для примера, это 2015 год).

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

    Если вы выбрали MS SQL Server:

    1. Microsoft SQL Server 2012 Руководство для начинающих - там хоть и не сильно углубляясь, но описано почти все что нужно на начальных этапах. Там и про индексы, и про оптимизацию, и про бизнес-аналитику, в общем, рекомендую.

    2. Microsoft SQL Server 2012 Создание запросов - просто и исчерпывающе(на момент издания) о том, как можно и нужно писать запросы на t-sql(расширение sql для MS SQL Server) с закреплением материала предлагаемыми заданиями.

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

    По Oracle и MySQL советов дать не могу, ибо дела не имел. Удачи!
    Ответ написан
    1 комментарий
  • Какие библиотеки использовать, чтобы собирать данные с сайтов?

    Vlad_IT
    @Vlad_IT
    Front-end разработчик
    1) Самый крутой scrapy
    2) Для любителей css query https://lxml.de/cssselect.html
    3) Еще довольно мощный beautifulsoup
    Ответ написан
    6 комментариев
  • Все по Wordpress?

    php10
    @php10
    Разработчик на PHP
    Очень очень очень плохая затея учить WP, да и любую другую CMS на PHP, без изучения самого PHP. Обязательно учите PHP параллельно. Иначе никакого понимания, что вы делаете не будет!

    Изучайте PHP. Хотя бы месяц попишите стандартные велосипеды на PHP: подключение к бд, вход и регистрация, работа с HTTP. После базового понимания PHP, WP пойдет как по маслу. Обратное вряд ли будет работать.
    Ответ написан
    3 комментария
  • Слышали ли вы об авторизации через email?

    Такой способ ещё называют "Волшебной ссылкой". Этим способом можно войти на сайте интернет-магазина mann-ivanov-ferber.ru или medium.com, например.

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

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

    Более удобным решением (для пользователей мобильных сайтов) будет разве что генерация и отправка одноразового пароля по СМС. В таком случае пользователь сразу прочитает пароль из уведомления не переключаясь ни на какие сторонние сервисы.
    Ответ написан
    3 комментария
  • Как бороться с клоном сайта?

    Sanasol
    @Sanasol Куратор тега Веб-разработка
    нельзя просто так взять и загуглить ошибку
    Если просто проксируют сайт
    1. Можно вычислить айпишник с помощью логов вебсервера.
    Достаточно зайти на какую-нибудь УНИКАЛЬНУЮ страницу на паразите чтобы увидеть этот переход в логах СВОЕГО сайта.
    Т.к. паразит пойдёт на ваш сервер за страницей.
    Уникальную потому что может быть кеш на стороне паразита, и его надо исключить запросив страницу которой не мог никто запрашивать ранее.
    Уникальность легко сделать с помощью случайных get параметров: parazit.ru/page/asd?random=12eqsdasd
    После вычисления забанить на сервере любым удобным способом, через iptables например.

    2. Если не вычислили, но точно известно что сайт всё таки проксирует запросы на ваш, то можно сделать так

    Добавить на ваш сайт
    <script>
    window.addEventListener("load", function load(event){
        if(window.location.hostname == "parazit.ru"){ // Домен сайта паразита
            document.write('<iframe width="1903" height="765" src="https://www.youtube.com/embed/dQw4w9WgXcQ?autoplay=1" frameborder="0" allowfullscreen></iframe>');
        }
    },false);
    </script>
    Ответ написан
    8 комментариев
  • Как бороться с клоном сайта?

    @bkosun
    Так сайт скопировали, или просто ссылаются на оригинальный сайт? Скорее всего злоумышленник просто указал IP сервера, где размещен оригинальный сайт, в качестве A-записи (DNS) для своего домена.

    Поможет банальная заглушка на стороне хостинга. Добавьте любой несуществующий домен в список www доменов (например "домен-заглушка.рф"), укажите его приоритетным.

    Так же запретите открывать Ваш сайт во фрейме, используйте framekilling (framebreaking):
    <script type="text/javascript">
            if (self != top) top.location = self.location;
        </script>
    Ответ написан
    3 комментария
  • Как бороться с клоном сайта?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    5a7ab400010d5153834325.png
    Статистика счётчика Яндекса - не является первой инстанцией доверия!
    Точно так же, как и
    Сайт на WP, вареза нет, wp-security стоит :)
    не гарантирует ни безопасность, ни защиту!

    Единственной инстанцией максимального доверия - всегда является Ваш ЛИЧНЫЙ и ПРАВИЛЬНО НАСТРОЕННЫЙ веб-сервер и его log-файлы!

    Поэтому:
    1. Смотрите логи своего веб-сервера (ну или домена, если хоститесь уже у других) и блокируйте по рефереру, IP/подсети или по поведенческому фактору.
    2. Также, Проверьте и настройте все заголовки для предотвращения XSS.
    3. Правила по фильтрации "спам"/некорректных-запросов: здесь
    Ответ написан
    7 комментариев
  • Как в Микротике в DHCP фильтровать неизвестные устройства?

    Настройте на своём DHCP пул "из специального диапазона, для которого нет маршрутизации ни с другими сегментами ЛВС, ни с Интернет", а статические адреса выдавайте из какой хотите подсети.

    Дополнительно, можно ограничить использование статических адресов в вашей сети: на интерфейсе с DHCP включить ARP в reply-only, а у DHCP сервера поставить Add Leases to arp.
    Ответ написан
    4 комментария
  • Mikrotik! Как перенаправить исходящий трафик по определнному порту на другой шлюз?

    @Grustnui
    Опишу чуть более подробнее как сделать то что написал Руслан Федосеев.
    Пусть почтовик - 192.168.88.20.
    Микротик А - 192.168.88.1.
    Микротик B - 192.168.88.10.

    Пометим все соединения с почтового сервера наружу на 25й порт.

    /ip firewall mangle
    add action=mark-routing chain=prerouting dst-port=25 dst-address=!192.168.88.0/24 new-routing-mark=\
    "SMTP Server" protocol=tcp src-address=192.168.88.20

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

    /ip firewall mangle
    add action=mark-connection chain=prerouting dst-address=!192.168.88.0/24 \
    dst-port=25 new-connection-mark=SMTP_Connect protocol=tcp src-address=\
    192.168.88.20
    add action=mark-routing chain=prerouting connection-mark=SMTP_Connect \
    new-routing-mark="SMTP Server" src-address=192.168.88.20

    Создадим еще одну таблицу маршрутизации SMTP Server и укажем для неё шлюз по умолчанию Микротик B
    /ip route
    add distance=1 gateway=192.168.88.10 routing-mark="SMTP Server"

    По идее трафик через 25й порт должен ходить через B.
    Ответ написан
    Комментировать