• Как сделать маску ввода банковской карты с скрытыми символами?

    f3d0t
    @f3d0t
    Добрый. Доработал решение irishmann для отображения именно звездочек
    Ответ написан
    Комментировать
  • Как перевести БД access в SQL?

    hottabxp
    @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    Комментировать
  • Почему сайт не работает в конкретном браузере у конкретного пользователя?

    1. Убедиться, что сайт на самом деле открывается в сторонних службах - проще всего дать ссылку на google page speed или tools.pingdom - они помимо прочего делают скриншот сайта. И сказать, мол google и весь мир видит ваш сайт. Всё норм. Это действует достаточно отрезвляюще.

    2. Сообщить ему, чтобы протестировал сайт в своем браузере после полной очистки кэша и в режиме инкогнито, я когда-то делал ролик именно для таких случаев https://youtu.be/Kuh4S8zNIB8 отправляю его клиентам, чтобы правильно сайт тестировали.

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

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

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

    Sanes
    @Sanes
    Откройте для себя шаблонизаторы, чтобы такую дичь больше не городить.
    Ответ написан
    1 комментарий
  • Как ограничить количество отправленных СМС?

    Sanes
    @Sanes
    Записывать в базу сразу, как неверифицированный пользователь.
    Ответ написан
    Комментировать
  • Как ограничить количество отправленных СМС?

    Stalker_RED
    @Stalker_RED
    Таймер не нужен.
    После отправки записывайте в БД номер получателя и время.
    Перед отправкой проверяйте сколько попыток было за последние N минут.
    SELECT count(*) FROM sms_history WHERE send_date >= NOW() - INTERVAL 40 MINUTE
                                                             -- 40 минут, например


    Сессия обнуляется (сбрасывается SSID) по желанию пользователя, хранить в ней важные для вас (для сервера) данные - так себе идея.
    Ответ написан
    Комментировать
  • Как исправить код чужого репозитория?

    ayazer
    @ayazer
    Sr. Software Engineer
    создаете свою форку -> создаете в своей форке новую ветку -> исправляете баг в новой ветке -> создаете pull request с ветки своей форки в основную ветку оригинального репозитория. И обычно в более-менее популярных репозиториях есть список требований/рекомендаций которые надо выполнять если хотите чтоб ваш код вмерджили
    Ответ написан
    7 комментариев
  • Как в Ubuntu 20.04 установить PHP со всеми нужными для Composer/Laravel расширениями одной-двумя командами?

    DevMan
    @DevMan
    воспользоваться одним из 100500 доступных в инете манов/туториалов.
    на их основе написать простенький скрипт, который будет вызываться одной командой и запускать 100500 других.

    это, конечно же, если не хочется ждать волшебной пилюли, а сделать самому и хоть немного понять "а что происходит".
    Ответ написан
    2 комментария
  • Как распарсить строку?

    cr1gger
    @cr1gger
    Все дороги ведут в Рим — встретимся в Риме!
    Ответ написан
    Комментировать
  • Как убрать царапины с корпуса MacBook?

    Jump
    @Jump
    Системный администратор со стажем.
    Зачистить шкуркой, потом потом шпатлевка со стекловолокном, сверху финишная шпатлевка, грунт, три слоя краски, и лак.
    Ответ написан
    2 комментария
  • Что изучить в первую очередь для веб сайта?

    approximate_solution
    @approximate_solution
    JS Developer. Angular\React\Vue\Ember
    Завтра мне нужно будет "следить" За сервером. Что мне понадобится изучить и какие учебники можете посоветовать?

    605d7a21c60c6227129062.jpeg

    Если от этого "поезда" не убежать, то советую перед каждым действием - 5 раз гуглить, 10 раз перечитать информацию, если есть возможность не править код в наглую в "мастере" и на боевом сервере(накатить на dev и оттестировать"), как можно чаще задавать себе вопрос "а не делаю ли я что-то, что может привести к факапу и увольнению за нецелесообразность".
    Ответ написан
    4 комментария
  • Можно ли в Micro ATX-корпус поставить mini atx материнку?

    @lonelymyp
    Хочу вылезти из минуса по карме.
    В инструкции или описании к корпусу будет указано какие форматы материнок в него подходят.
    Обычно в больший корпус можно ставить материнки меньшего размера т.к. по крепёжным отверстиям они совпадают.
    Comparison_ATX_%C2%B5ATX_DTX_ITX_mini-DTX.svg
    Ответ написан
    Комментировать
  • Как работать с библиотеками в Python?

    @mkone112
    Начинающий питонист.
    Я начинаю работать над новым проэктом.

    Сначала выучи питон. Вопрос уровня кодера с 2мя неделями опыта программирования. И лучше проверяй вопрос на орфографию.
    Ответ написан
    1 комментарий
  • SQL инъекция в UPDATE возможна ли?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Инъекция может быть через любой запрос.
    И защищать тоже надо любые запросы.
    Никогда не надо торговаться, "а можно я не буду защищать именно этот запрос? Ну мааааам!"
    Надо просто всегда следовать простым правилам - любая переменная попадает в запрос только через плейсхолдер

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

    Уязвимость — это сама возможность с помощью переданных в запрос данных изменить его код.
    Даже если ты не знаешь ни одного способа ей воспользоваться, уязвимость от этого никуда не девается.
    Даже если та возможность, про которую ты знаешь, в данном случае не прокатит - остаются ещё тысячи других.
    Если есть уязвимость, то способы ей воспользоваться всегда найдутся.

    То есть сама уязвимость никак не зависит ни от каких второстепенных факторов - типа запроса, передаваемых данных, способов их валидации, твоих знаний SQL. Это сам факт. Можно подставить свой код в запрос? Значит он уязвим. А как конкретно можно нагадить - это отдельная тема.

    Кроме того, любая уязвимость - это всегда ошибки. Если в $id будет пусто, то запрос вызовет ошибку. Если в $id будет слово select то запрос вызовет ошибку. Если будет слово "привет", то запрос вызовет ошибку. Оно тебе надо?

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


    Если вопрос "а можно я не буду защищаться?" вызван ленью, то это тоже решаемо. В принципе, лень - это очень важное качество для программиста. Главное - направить её в нужное русло.

    Если каждый раз писать по три строчки долго
    $sql = "INSERT INTO users SET email = ?, password = ?"; // заменяем на знаки вопроса
    $stmt = $db->prepare($sql); // подготавливаем запрос, получаем stmt
    $stmt->bind_param("ss", $email, $hash); // два знака вопроса - две переменных - две буквы s
    $stmt->execute(); // выполняем запрос

    То надо воспользоваться такой вещью, как программирование. И написать функцию, которая возьмет на себя всю рутинную работу.
    function prepared_query($mysqli, $sql, $params, $types = "")
    {
        $types = $types ?: str_repeat("s", count($params));
        $stmt = $mysqli->prepare($sql);
        $stmt->bind_param($types, ...$params);
        $stmt->execute();
        return $stmt;
    }

    и в итоге предыдущие 4 строчки превратятся в одну:
    prepared_query($db, "INSERT INTO users SET email = ?, password = ?", [$email, $hash]);

    или твой запрос:
    prepared_query($db, "UPDATE table SET test WHERE id = ?", [$id]);

    - просто, быстро, удобно и безопасно
    Ответ написан
    26 комментариев
  • Соглашаться ли получать меньше на испытательном сроке?

    fdroid
    @fdroid
    press any key
    Нет.

    PS Предложите взамен работать на 30% меньше, тогда справедливо будет.
    Ответ написан
    9 комментариев
  • На чем лучше писать аналог Aliexpress?

    solotony
    @solotony
    покоряю пик Балмера
    >>На чем посоветуете написать?

    На русском языке в ворде полностью описать проект, а уже потом выбирать какие части проекта на чем будут разработаны, исходя из бюджета и прочих условий.
    Ответ написан
    Комментировать
  • На чем лучше писать аналог Aliexpress?

    DevMan
    @DevMan
    с такой постановкой вопроса - лучше вообще не писать.
    и вопрос, если уж стоит, должен быть: не на чем, а как.
    Ответ написан
    7 комментариев
  • Фильтрация данных?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Ты как и все пхпшники путаешь валидацию и форматирование данных.

    Форматирование обязательно, по правилам той среды, в которую ты отправляешь данные.
    У тебя это
    - при использовании переменной в запросе делать это через подготовленные выражения
    - при выводе переменной в браузер обрабатывать через htmlspecialchars

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

    Про кэширование вообще забудь, это ты наслушался дуремаров-теоретиков, которые сайт у мамки на ноутбуке видели два раза в жизни.
    Ответ написан
    7 комментариев