• Что такое «.js@crc=6»?

    SagePtr
    @SagePtr
    Еда - это святое
    Скорее всего, изначально URL файла выглядел наподобие https://домен/папка/файл.js?crc=6, где ?crc=6 использовалось для обозначения версии этого файла на случай, если в кэше браузера могла находиться какая-либо из предыдущих его редакций, предположительно их было пять (при каждом изменении файла - в URL также менялся этот номер, чтобы браузер считал файл другим и не брал из кэша старый). Но потом этот файл был сохранён на диск на стороне клиента, а в файловой системе вопросительный знак недопустим, потому этот символ был заменён на символ @. Так и получилось такое странное расширение файла. Почем именно crc - скорее всего, просто неудачно выбранное название параметра, который в принципе может называться как угодно или вообще не иметь названия, лишь бы символы после ? различались от версии к версии, если выбран именно такой способ обхода кэша.
    Ответ написан
    2 комментария
  • Как сделать сквозное шифрование сообщений?

    SagePtr
    @SagePtr
    Еда - это святое
    Как вариант, шифровать ключ паролем пользователя. В таком случае при сбросе пароля вся эта информация окажется утеряна. Такой способ применяется в файлообменнике mega.nz
    Если отправитель и получатель - два разных пользователя, то можно для каждого пользователя генерировать пару ключей (открытый и закрытый), открытый хранить в чистом виде, закрытый - в зашифрованном.
    Ответ написан
    Комментировать
  • Какой выбрать антивирус на Ubuntu?

    SagePtr
    @SagePtr
    Еда - это святое
    По файрволу - nftables. На мой субъективный взгляд, удобнее, чем iptables, а ufw это совсем для домохозяек.
    Ответ написан
    Комментировать
  • Как убрать лишнюю табуляцию в VScode?

    SagePtr
    @SagePtr
    Еда - это святое
    Shift+Alt+F - отформатировать автоматически
    Ответ написан
    Комментировать
  • Php, как вывести ipv4 и ipv6?

    SagePtr
    @SagePtr
    Еда - это святое
    Можно использовать, к примеру, два разных поддомена, один из которых имеет только A-запись в DNS, другой только AAAA-запись. И их уже дёргать на странице. Можно даже, чтобы они указывали на один и тот же сайт, но по разным IP-адресам, как к примеру ipv4.google.com и ipv6.google.com.
    Ответ написан
    Комментировать
  • Как задать сайту протокол https?

    SagePtr
    @SagePtr
    Еда - это святое
    В зависимости от строгости (каждый последующий пункт включает в себя все предыдущие):
    1) Принудительно перенаправлять с HTTP на HTTPS.
    2) Добавить заголовок Strict-Transport-Security, чтобы браузер после первого захода запомнил это и не пытался грузить по HTTP.
    3) Добавить сайт в HSTS Preload List, чтобы браузеры заранее знали, что сайт нужно через HTTPS открывать, и даже не открывали по HTTP.
    Ответ написан
    Комментировать
  • Зачем нужны скобки в данном случае?

    SagePtr
    @SagePtr
    Еда - это святое
    Потому что в javascript фигурные скобки можно использовать не только для объявления объекта, но и для объединения инструкций в блок. Парсер в этом случае не понимает, что {a, b, c} это именно деструктуризация объекта, а не блок из трёх инструкций a, b и c, потому их заворачивают в скобки, чтобы устранить неоднозначную трактовку.
    Ответ написан
    Комментировать
  • Как сделать decode только в mysql запросе?

    SagePtr
    @SagePtr
    Еда - это святое
    Как-то так:
    CREATE FUNCTION textDecrypt (input TEXT)
    RETURNS TEXT DETERMINISTIC
    BEGIN
      DECLARE crypt_str BLOB;
      DECLARE key_str BINARY(32);
      DECLARE init_vector BINARY(16);
      SET crypt_str = FROM_BASE64(input);
      SET key_str = UNHEX(SHA2('marks', 256));
      SET init_vector = REPEAT('\0', 16);
      SET block_encryption_mode = 'aes-256-cbc';
      RETURN AES_DECRYPT(crypt_str, key_str, init_vector);
    END

    https://sqlize.online/sql/mysql80/6fde6e8b7a619316...
    Ответ написан
    Комментировать
  • Как подключить одну базу к разным хостингам?

    SagePtr
    @SagePtr
    Еда - это святое
    Если это шаред-хостинги, то скорее всего никак не получится дать внешний доступ к БД или репликацию использовать, но можно, к примеру, при авторизации в одном месте дёргать API в другом месте. Или подключаться через велосипедный HTTP-туннель, как это умеют делать некоторые продвинутые клиенты MySQL.
    Ответ написан
  • Можно смотреть фильм на ноутбуке без ОС?

    SagePtr
    @SagePtr
    Еда - это святое
    Да, LiveUSB любого линукса или WinPE
    Ответ написан
    Комментировать
  • Не включается анимация gif до завершения скрипта. Можно ли пофиксить?

    SagePtr
    @SagePtr
    Еда - это святое
    Данная проблема это из-за того, что при width < 350 картинка постоянно меняется на саму себя. Нужно менять один раз, например, поменять условие на width == 350, или добавить проверку на src картинки, или флаг.
    Ответ написан
    Комментировать
  • Какие ограничения в PHP существуют?

    SagePtr
    @SagePtr
    Еда - это святое
    Ещё есть ограничение на одновременную работу с сессиями. Нельзя одну и ту же сессию открыть дважды параллельно, не закрыв старый экземпляр, новый будет ждать освобождения блокировки.
    Ответ написан
  • Как делать конвертацию валют на PHP?

    SagePtr
    @SagePtr
    Еда - это святое
    Комментировать
  • Можно ли добавлять Null в INT поле?

    SagePtr
    @SagePtr
    Еда - это святое
    Самое простое - это смотреть по смыслу этого поля. NULL хранить там, где мы заранее не знаем, какое значение там должно быть, или его не должно быть вообще у текущей записи. А 0 - там, где мы точно знаем, что это значение равно конкретно нулю (например, пустой баланс на счету, или счётчик, начавшийся с нуля и ещё не прибавившийся ни разу).
    Ответ написан
    Комментировать
  • Почему nginx выделяет игрокам localip?

    SagePtr
    @SagePtr
    Еда - это святое
    В случае, если там используется протокол HTTP - то необходимо передавать IP отдельным HTTP-заголовком, например, X-Real-IP.
    proxy_set_header X-Real-IP $remote_addr;
    На стороне сервера - читать этот заголовок и использовать его для идентификации игроков по IP, но при этом или убедиться, что сервер недоступен напрямую без nginx (чтобы злоумышленники не смогли скормить ему левый IP через этот заголовок), либо доверять заголовку только в случае, если IP принадлежит серверу nginx, иначе не заменять IP.
    Ответ написан
  • Почему bcrypt ложно срабатывает?

    SagePtr
    @SagePtr
    Еда - это святое
    Следует для начала определиться, а зачем в данной ситуации вообще использовать bcrypt.
    У bcrypt есть свои преимущества, недостатки и цели применения. Этот алгоритм хорош для паролей по той причине, что у него высокая вычислительная сложность и низкая скорость перебора, если злоумышленники утащат базу данных - то подобрать для паролей коллизии займёт очень много времени, если вообще им захочется этим заниматься.
    Хэшировать этим алгоритмом токены не имеет никакого практического смысла, т.к. содержимое токена не представляет для злоумышленника никакой ценности - "публичная" часть собирается из данных, хранящихся в той же БД в открытом виде (id пользователя, емейл), а подпись - легко инвалидировать, сменив секрет после утечки БД.
    Если же просто нужно в каком-то хэшированном виде хранить хэши токенов для сравнения между собой, то лучше воспользоваться любой "легковесной" хэш-функцией, например, sha1 (да или тупо в открытую хранить подписи токенов без самих токенов и уже их сравнивать). Много вычислительных раундов и соль в этой задаче абсолютно лишние по вышеуказанной причине. В большинстве случаев их и хранить не обязательно, достаточно проверять их подлинность после получения от клиента (хранить разве что в ситуации, когда есть механизм отзыва токенов и нужно проверять, не отозван ли он).
    Ответ написан
    1 комментарий
  • Как по проще определить на ubuntu, какое приложение будит соседний компьютер в сети, и почему это стал делать keepass?

    SagePtr
    @SagePtr
    Еда - это святое
    Возможно, лезет в сетевое окружение, а сетевая карта получает пакет и просыпается. В таком случае поидее должна эта галочка помочь:
    eomoktb4n6wmkdbwcp-givx4dxa.png
    Ответ написан
    Комментировать
  • Можно ли навредить серверу из docker?

    SagePtr
    @SagePtr
    Еда - это святое
    Если из этого контейнера есть доступ к сети - то к примеру, можно спам с него разослать или в других сетевых атаках поучаствовать, а засветится IP сервера.
    Ответ написан
    Комментировать
  • Чем можно в 2022 заметить метод test, для валидации формы?

    SagePtr
    @SagePtr
    Еда - это святое
    Может быть, имелось ввиду, что современные браузеры умеют валидировать поля формы без помощи javascript, к примеру, по аттрибуту pattern: https://developer.mozilla.org/ru/docs/Web/HTML/Att...
    Ответ написан
    Комментировать
  • Как записать в переменную значение из массива ответа json decode php?

    SagePtr
    @SagePtr
    Еда - это святое
    https://www.php.net/manual/en/function.json-decode.php
    В зависимости от второго параметра, json_decode возвращает или объект, или массив.
    В случае с объектом: $link = $result->response->short_url
    В случае с массивом: $link = $result['response']['short_url']
    Ответ написан
    Комментировать