• Как защитить приложение от спама запросами?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    1. Если запрос с клиента не поменялся - выдаём результат из переменной JS (на клиенте).
    2. Если отправляют в обход тот же запрос - выдаём кешированный результат на стороне сервера (не выполняя повторный поиск в БД)
    3. Если запросы меняют и отправляют часто - ограничиваем время между соседними запросами и их параллельное количество на сервере: при начале поиска проверяем условие превышения частоты и, если всё нормально, в переменную сессии кол-ва активных запросов прибавляем 1-цу (инкремент), перед выдачей - вычитаем 1-цу (декремент). Если частота превышена - сразу возвращаем пустой результат без поиска. Превышена 3 раза - можно и забанить по IP на часик ;)
    Ответ написан
    4 комментария
  • Как подружить пагинацию и фильтрацию?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Никак не могу придумать, как подружить эти функции.
    Через JS-обработчик и склейку/замену нужного параметра.
    Ответ написан
    Комментировать
  • Как вернуться в Информационную Безопасность?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Очень быстро учусь практически всему.
    Не считаю себя специалистом, но очень стремлюсь им стать, учусь практически круглосуточно сейчас.
    Учиться....
    Учиться.
    Учиться!
    Изучение, Понимание, Опыт, Знания, Повторять!
    Открывайте гугл и доучивайтесь до специалиста.
    (а Тостер - закрывайте!)
    Ответ написан
    Комментировать
  • Как организовать простейшую аутентификацию для одного клиента c его машины?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Если брать "золотую середину":
    1. Открытие формы входа - через страницу подписи: site.com/login#userlogonformcode
    2. Определяем финжерпринт и логонкод и если всё совпало - можно открыть форму ввода логина и пароля.
    3. Логин-пароль верные - привязываем финжерпринт и IP к токену авторизации и блокируем параллельные сессии.

    Всё! Пользователь залогинен.

    PS: userlogonformcode, login, pass - выдаём последовательно через ссылку в почте.
    Ответ написан
    Комментировать
  • Имеет ли смысл менять адрес для админ панели?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Имеет смысл замаскировать минимум с помощью хотя бы одного статического аргумента URI.
    site.com/adm/?ЧТОУГОДНО
    (или ограничить по IP, что не всегда бывает удобно).

    А вообще, лучше защищать так, чтобы этот аргумент зависел от времени.
    Например, использовать TOTP с привязкой к этому аргументу и "убить сразу 2-х зайцев":
    1. чтобы открыть страницу входа в админку.
    2. чтобы залогиниться
    Ответ написан
    Комментировать
  • Как правильно использовать google authenticator при логине?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Расшарили учётку - корректно.
    Но сам факт того, что Вы раздали всем одинаковые данные аутентификации - грандиозный EPIC FAIL!
    Вы сделали HUB, а нужен - ROUTER! Понимаете?
    Посмотрите псевдокод и реализуйте роутер, чтобы иметь контроль каждого пользователя.
    Вот реализация на PHP.
    Ответ написан
    Комментировать
  • Как по ссылке понять, что это сайт интернет-магазин?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Если "в лоб": buy, price, cart - любое из слов 33% вероятнсть того, что это - интернет-магазин.
    Ответ написан
    Комментировать
  • Как проще всего и надежно хешировать пароль в PHP 5.3.5?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    тут
    crypt('password', '$6$rounds=150000$PerUserCryptoRandomSalt$')

    $6 - use SHA-512, which has 64-bit operations that reduce the margin of advantage most GPU based attackers have over you as of early 2016.

    $rounds=150000 - set the number of iterations to hundreds of thousands or high tens of thousands of rounds.

    PerUserCryptoRandomSalt - unlike password_hash, you have to do this yourself. You need to generate a unique, cryptographically random salt of 12-24 binary bytes (16 is very reasonable)
    Ответ написан
  • Header PHP не работает?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Уберите весь вывод потока (HTML) при использовании header().
    Ответ написан
  • PHP 7.3 - Could not resolve host в curl. Как исправить?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Проверьте настройки переменных окружения: здесь
    Ответ написан
    Комментировать
  • Как сделать вывод времени публикации чего-нибудь через UNIX-время?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Используйте date()
    Ответ написан
    Комментировать
  • Разработка игр.Как начать?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Подберите актуальный на сегодня игровой "движок" на С++ и читайте оф. мануал и проходите уроки шаг за шагом.
    После того, как освоите - можете сделать что-то простое на нём.
    А дальше - уже поймёте куда двигаться.
    Ответ написан
    Комментировать
  • Где вести блог о разработке своей игры?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Заведите сайт с названием игры и на нём 2 странички и канал на YouTube ("Разработка игры [название]"):
    1. Лэндинг с презентацией того, что будет в итоге.
    2. Поддомен dev.название.ltd и ведите здесь блог по разработке.

    То, что Вы будете делать на ПК, грабьте через внешнее стрим-устройство и сразу кладите в свой канал на YouTube и комментируйте в микрофон. Я советую выкладывать всё: удачные и НЕУДАЧНЫЕ! моменты разработки при создании игры. Так - люди будут понимать, что не всё так просто и "гладко" происходит и будут больше заинтересованы.

    Про "сайт неизвестен":
    Если 1 посетитель вернулся хотя бы раз, значит он уже известен!
    Следующий вопрос: насколько интересен ли сайт (контент на нём) вернувшимся?!
    Так что не парьтесь: просто сделайте визуально качественно и информационно интересно и познавательно и люди придут автоматически.
    Ответ написан
    Комментировать
  • Как избавиться от полосы внизу веб-страницы в chrome?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Проблема с округлением во время рендеринга, как я понимаю.
    Замечаю такое же поведение.
    Ответ написан
  • Какой язык программирования учить для работы с железом?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Кастомизация прошивки или системная интеграция.
    Устройство должно позволять это делать.
    Если код управления "вшит" в микросхему - то без шансов.
    Язык - тот, который создаёт микрокод, "понимаемый" конкретным устройством.
    Ориентироваться нужно на конкретное устройство и его изучать.
    И от того, что оно может и как именно - исходить.

    Для примера: прошивка OpenWRT написана на языке С.
    Ответ написан
  • Мониторинг безопасности сети js/php/py?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Парни, есть сервисы, которые предлагают проверить свою сеть на безопасность.
    1. Проверить сеть на безопасность можно только изнутри этой сети!
    2. Проверить код на безопасность - только дав исходный код профессиональному программисту, понимающему весь процесс движения данных.
    3. Проверить сервер - только дав доступ безопаснику-штатнику.
    Также, есть утилиты, которые сканируют сервер на известные уязвимости и выдают отчёт также изнутри корпоративной сети.

    Никаких веб-сервисов быть не может!
    Только адекватный подход к проблеме и настройка файрвола.
    Ответ написан
    Комментировать
  • Как обнаружить скрытые вредоносные процессы в системе?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Обнаруживать - без вариантов!
    Вот пример.
    Нужно поставить "чистую" систему и ЗАРАНЕЕ! настроить все права на запись и на запуск с помощью стороннего софта.
    Например, Folder Guard.
    Все новые - запускать в "песочнице" (или, что надёжнее, в виртуалке): SandBoxie
    Ответ написан
    1 комментарий
  • Как правильно идентифицировать пользователя?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Токен - это фактически подпись данных авторизации клиента на стороне сервера.

    А именно, это то, что объединяет в себе следующие параметры в виде ЕДИНОЙ хеш-суммы (токена):
    1. ID устройства
    2. ID пользователя (+данные аутентификации: пароль или другое)
    3. Время входа
    4. Случайную строку символов
    5. Время жизни токена

    Если клиент повторно авторизуется (передаются серверу п.1 и п.2) - автоматом меняются параметры 3 и 4.
    А значит старый токен (хеш) становится недействительным при ЛЮБОЙ! попытке авторизации: успешно или ошибочно.
    Ответ написан
    Комментировать
  • Как получить базу данных для собственного алгоритма рекомендаций?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Каждый критерий - это голос.
    Каждый фильм имеет стэк голосов.
    1. По всем фильмам проставляем голоса критерия выбора. (актёр нужный есть? - да: +1; жанр такой есть? - да: +1; и т.д.)
    2. Список сортируем по убыванию количества голосов в каждом стэке (т.е. в каждом фильме).
    3. Выводим на экран список фильмов в соответствии с предпочтениями.

    Список фильмов на википедии
    Ответ написан
  • Как безопасно передать текстовую информацию?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Все доступы кроме паролей - можно отправить открытым текстом.
    Также, можно зашифровать в архиве, НО! главное НЕ ПАРОЛЕМ ДОСТУПА К СЕРВЕРУ!
    Пароль к серверу ставим длинным и таким, чтобы не привлекал внимание одной из частей, и разбиваем его на две части.
    Пример пароля: 4764_S989854SSL
    Делим: "4764_S989854" и "SSL".
    Затем отправляем обе половинки по двум разным каналам связи, сообщив как собрать.

    Лучше использовать чат с e2ee или сквозным шифрованием.
    Советую почитать как это работает здесь.
    Ответ написан
    Комментировать