• Почему класс \Memcached() не находится, хотя библиотека php_memcache.dll подключена?

    Immortal_pony
    @Immortal_pony Куратор тега PHP
    memcache и memcached - это разные вещи.
    php_memcache.dll не имеет отнощения к классу \Memcached
    Ответ написан
    3 комментария
  • На сколько сейчас frontend про верстку?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    но сейчас фронтенд != верстальщик

    Фронтендер без умения верстать - это как автогонщик, не умеющий крутить руль.
    Ответ написан
    8 комментариев
  • Как исправить ошибку после перехода на php 8?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Вордпрессу еще года два на восмерку путь заказан. Как минимум.

    Но вообще специально для таких вот печальных случаев именно в 8-ке придумали
    <?php $cf = get_post_meta($post?->ID, 'n', true);

    Но тогда этот код перестанет работать на всех предыдущих версиях.
    Ответ написан
    3 комментария
  • Как нескольким компьютерам в одной сети задать разные ip и mac адреса?

    Lopar
    @Lopar
    системный администратор
    Скажем так, выдать нескольким компьютерам в одной сети одинаковые ip и mac-адреса — это надо очень хорошо постараться и заморочиться. Плюс ничего не будет работать. То что вы спрашиваете — default behavior любой сети.
    Ответ написан
    5 комментариев
  • В каком этапе обучения нужно беспокоиться о безопасности?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Начинать беспокоиться о безопасности надо ДО начала обучения. То есть сильно раньше, чем когда уже "написал блог".
    Хотя бы базовые принципы надо применять с самого начала
    Для запросов в бд использовать подготовленные выражения.
    Для вывода информации в html использовать htmlspecialchars
    Если не дай бог читаются какие-то указанные пользователем файлы - то basename()
    При заливке файлов проверять расширение и переименовывать файл.
    При выполнении пользователем каких-то действий, проверять имеет ли он на это право.
    Во все формы добавлять сохранённый в сессии токен, чтобы их не могли подделать
    Ответ написан
    1 комментарий
  • Какой способ лучше защитит пароль?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Я понимаю что в гамаке и стоя интереснее, но все же - 2 вопроса: Зачем и нахрена?
    Ответ написан
    2 комментария
  • Какой способ лучше защитит пароль?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Первый вариант, разумеется, вообще ни о чём.

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

    У нас здесь речь идет об алгоритме. То есть, о буртфорсе. Что такое брутфорс? Это тупо подстановка случайных сочетаний символов по очереди и проверка, не совпал ли хэш. Чем быстрее вычисляется хэш, тем быстрее раскалывается пароль.
    ПОЭТОМУ, ключевой характеристикой хэша для паролей является сложность его вычисления.
    Твой ша-пицот-двенадцать выплоненный стопицот раз - это для современной техники как воробей чихнул. А для будущей и подавно.
    Поэтому умные люди придумали алгоритмы которые во-первых вычисляют каждый хэш гораздо медленнее, а во вторых адаптируются под растующую скорость процессоров, и говорят тебе когда пора уже усложнять алгоритм. Именно этим и занимаются встроенные функции, и поэтому ты должен использовать именно их.
    Ответ написан
    Комментировать
  • Какой способ лучше защитит пароль?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    https://www.php.net/manual/ru/function.hash-pbkdf2.php
    Предостережение
    Метод PBKDF2 может быть использован для хеширования паролей в целях их хранения. Однако стоит помнить, что для этих целей гораздо лучше использовать password_hash() или crypt() с CRYPT_BLOWFISH.
    Ответ написан
    1 комментарий
  • Как ускорить время SELECT MySQL?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Во-первых не позорься, убери тег big data. 11 лямов - это не бигдата, а кошкины слёзки.
    Во-вторых, надо учиться задавать вопросы.
    Не вопрос вида "доктор, у меня рука болит, как сделать чтобы не болела", а подробно излагать, что за поиск, что за запрос, что за данные, что за столбец, есть ли индекс, что показывает explain.

    В текущем же виде ответ только один - помазать зеленкой добавить индекс
    если индекс есть, и поиск идет по полному совпадению, то смотреть, влезает ли индекс в память
    Если поиск идет по частичному совпадению - то выносить его в отдельный сервис, sphinx/elastic
    Ответ написан
  • Что чаще предпочитают работать - XML или JSON? и почему?

    Seasle
    @Seasle Куратор тега JavaScript
    На самом деле, Вы вольны использовать те технологии, которые Вам удобны. Но JS намного проще работать с JSON, потому как для XML Вам придется найти/написать некоторое решение, которое будет трансформировать XML в объекты. На счет разных технологий, можете хоть в виде CSV, хоть YAML использовать, хоть любое другое решение - но для него необходим будет механизм перевода в объекты. Это, возможно, хорошее решение, если Вы будете гонять по сети очень много данных, а тот же YAML позволит Вам опустить всякие {}[]".
    Ответ написан
    Комментировать
  • Как в вебдрайвере Selenium добавить блокировщик рекламы AdBlock?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    Можно не придумывать велосипеды, а использовать постоянный профиль.
    Оба варианта рабочие 100 пистонов!
    Проверял лично на Linux Mint 19.3 и Windows 10 20H2.
    Если при запуске профиля не существует, chrome сам его создает. При закрытии профиль сохраняется и при следующем запуске подхватывает его со всеми настройками и расширениями.

    Код (для Linux):
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    options = Options()
    options.add_argument("user-data-dir=/home/sergey/SeleniumProfile")
    driver = webdriver.Chrome(chrome_options=options)
    driver.get("https://google.com")

    Запускаете его, он создает профиль. Далее в браузере идете в магазин с расширениями и устанавливаете себе любые расширения. Все! При следующем запуске кода selenium будет использовать данный профиль вместе с расширениями.
    5fba809595a29657435273.png
    Вот код для Windows:
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    options = Options()
    options.add_argument("user-data-dir=C:\\profile")
    driver = webdriver.Chrome(chrome_options=options)
    driver.get("https://google.com")

    5fba9f0f92a7f243822459.png
    Ответ написан
  • Почему часто вижу вопросы с рандомным текстом?

    JhaoDa
    @JhaoDa
    LaravelRUS Team
    Автор решил удалить вопрос, но не смог, т.к. уже есть ответ. За такое канделябром бить надо.
    Ответ написан
    2 комментария
  • Для чего используется Vue.js?

    0xD34F
    @0xD34F Куратор тега Vue.js
    изучаю Vue.js и никак не могу понять зачем он нужен

    Не можете понять - значит вам он не нужен. Отложите его в сторону, и изучите что-нибудь другое.
    Ответ написан
    Комментировать
  • Есть ли смысл учить ruby в 2020 году?

    c3gdlk
    @c3gdlk
    Ментор в http://rubyboost.ru/
    Учить нужно то, что нравится. Разработка это творческий процесс. Если заниматься тем, что не нравится, то и спецом не станешь, и в итоге хорошую зп не получишь. Руби это рельсы. Посмотрите курс по рельсам, попробуйте повторить. И так же с питоном джанго и пхп лаварелом. Что понравится больше, то и Ваше.

    Кроме того, в итоге то, с чего начать, не особо важно. В разработке с 70х годов ничего концептуально нового не придумали. Разницы на примере какой технологии учить концепции нет. Главное чтобы это нравилос и было желание по 12 часов в день в это погружаться, понимать почему так а не этак решаются конккретные задачи.
    При высоком уровне сеньорити даже с ООП парадигмы перейти на функциональную дело пары месяцев. Когда опытный разработчик пользуется новым инструментом, языком или библиотеккой, это нельзя считать обучением. Ты читаешь описание библиотеки или инструмента, смотришь какие проблемы решаются по новому и уже знаешь, что там будет. Просто смотришь соглашения инструмента и все.

    Есть еще один большой плюс руби. При знании английского на b1 открываются западные вакансии с ЗП х2-3 от российских. А руби конторы в основном это работа напрямую с западным закакзчиком и прямым общением. Я так за 7 лет общения по 1-2 часа в неделю прокачал английсккий со шкокльного a2 до b1. Никакие правила дополнительно не учил, на курсы не ходил.
    Ответ написан
    Комментировать
  • Есть ли смысл учить ruby в 2020 году?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    Есть ли смысл?

    Смотря для чего. Хочешь побыстрее устроиться - нет, для опыта, саморазвития, ради интереса и тп. - да пожалуйста.
    смогу ли я потом найти работу?

    Если долго мучаться что-нибудь получится.
    какой уровень входа?

    На котором сможешь писать достаточно производительные приложения.

    Но я бы рекомендовал js или php.
    Ответ написан
    8 комментариев
  • Md5 хэш + соль, как соль помогает в усложнении пароля?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Просто нужно создать новую хэш-таблицу в 20 миллиардов и всё? Ведь это делается за секунды.

    1. Даже просто выделить память на 20 миллиардов хешей займет далеко не секунды.
    2. Не секунды займет записать их на диск.
    3. Соль нужна для того, чтобы нельзя было использовать РАНЕЕ сгенеренную хеш таблицу.
    4. md5 не самый лучший хеш на сегодня - можно использовать более трудоемкое хеширование, которое будет генерироваться медленнее.

    В общем соль нужна именно для того, чтобы обеспечить противодействие радужным таблицам. Все.
    Ответ написан
    3 комментария
  • Почему на западе любят поддомен www в адресе сайте, а у нас корень домена?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Технически можно и так, и сяк. Но, как всегда, есть нюансы, на которых и сыпется большинство советчиков (в том числе в этом треде).

    Если у вас только сайт на домене, максимум почта на других портах, и даже CDN не используется - можете спокойно использовать основной домен без www. Если у вас сайт многоязычный, и языки размещены на поддоменах - тогда тоже без www. Если же у вас есть и другие ресурсы в домене, например:

    www.example.com - публичный сайт
    developers.example.com - публичный сайт инструментов для разработчиков
    api.example.com - какой-нибудь публичный АПИ
    cdn.example.com - поддомен content delivery network (можно много - cdn1, cdn2 итд)
    docs.example.com - публичная документация
    help.example.com - публичная справка
    support.example.com - публичная служба поддержки
    dev.example.com - закрытая, непубличная копия сайта, стейджинг
    hr.example.com - закрытая, непубличная часть, внутренние ресурсы компании для сотрудников
    mail.example.com - технический субдомен для почты
    webmail.example.com - веб-морда для почты (может быть как публичной, так и открытой для отдельных IP, доступ по VPN и тд)
    vpn.example.com - чисто технический поддомен для проксирования трафика через VPN компании
    ns1.example.com - поддомен для своего сервера имен (ns1/ns2/ns3 или primary/secondary и тд)

    ... и так далее. Таких поддоменов может быть очень много, и у каждого своя, совершенно изолированная кухня. Так вот, если использовать для публичного сайта домен без www, то все его куки будут распространяться на все поддомены. А это плохо. На современном сайте этих кук штук 10 минимум, большая часть из них совершенно не нужна, или даже откровенно лишняя на всех других поддоменах. В это же время, если вы используете www и хотите поделиться куками с него с другим поддоменом - это вполне возможно сделать, осознанно.

    Кроме этого - с www намного удобнее работать на уровне DNS, если это CNAME. Записи типа А лучше ставить долгий TTL, а вот CNAME может иметь короткий и его можно перебрасывать в любой момент. Пошла DDoS-атака - в считанные минуты пустили трафик через гейт сервиса защиты от DDoS или выделенный файрвол (у который другие IP-адреса). Или балансировку нагрузки делать. При этом основной домен (origin) и его IP не меняется, почта не слетает, внутренние сервисы не слетают, АПИшки не падают и тд.

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

    В общем, мое мнение - если у вас свой личный сайт или маленький сайтик маленького личного бизнеса, и рост до уровня когда понадобится куча поддоменов не планируется - тогда можете смело использовать без www. Если же продукт или сервис, бизнес который может вырости в что-то относительно крупное - стартуйте с www с самого начала, потом спасибо скажете.
    Ответ написан
    2 комментария
  • Почему файл всё равно выполняется если даже у него убраны все права?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    потому что это не исполняемый файл

    Исполняемый файл это файл который исполняет операционная система.
    в данном случае РНР файл исполняется не операционной системой, а веб-сервером, и права на исполнение к нему не имеют отношения вообще никакого
    Ответ написан
    1 комментарий
  • Java для бэкенда?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Веб-разработка
    За серьёзным бэкендом стоят серьёзные разработчики, а не серьёзные языки. Учите парадигмы, высокоуровневые (паттерны) и низкоуровневые (работа памяти, GC, сети) вещи и смежные дисциплины, а не языки программирования.
    Ответ написан
    4 комментария
  • Как на сайте используется сразу react и vue?

    0xD34F
    @0xD34F Куратор тега React
    Очень просто - в один блок монтируется приложение на react, в другой на vue.

    Зачем - вопрос не сюда, спросите у тех, кто так сделал.
    Ответ написан
    Комментировать