• Какой тип баз данных самый быстрый?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Какой транспорт самый быстрый? Болид F1? А если с десятью тоннами груза? А если на пересечённой местности? А если на воде? Уловили посыл? Скорость тех или иных видов СУБД зависит от условий эксплуатации. В одних условиях быстрее будет одно, в других другое.
    Ответ написан
    Комментировать
  • Как хранить и искать URL адреса в MySQL?

    @PapaStifflera
    Родился, вырос...
    Храните хеш от урла, его легко можно проиндексировать. И ищите тоже по нему.
    Ответ написан
    Комментировать
  • Как сверстать данный блок?

    AngryYumy
    @AngryYumy
    Заплати фрилансеру чеканой монетой
    Обычный квадрат с псевдоэлментом.
    https://codepen.io/angryyum/pen/dyPrppx
    А там уже под себя подгоните
    Ответ написан
    Комментировать
  • Как шифровать личные данные пользователей?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Давайте различать. Шифрование пароля - это не то же самое, что шифрование других данных. Пароль следует не шифровать, а хешировать. Это такое шифрование, которое нельзя расшифровать обратно. То есть имея хеш нельзя получить пароль, а имея пароль можно получить точно такой же хеш. Существуют для этого специальные хеш функции. Но хешировать пароли мало, их нужно сперва солить. Соль - это произвольный текст, присоединённый к паролю перед хешированием и размещаемый рядом с хешем в открытом виде. Нужна соль для того, чтобы нельзя было подбирать простые пароли по значению их хешей.
    Проверка пароля будет такой:
    1. Запрашиваем у пользователя логин и пароль.
    2. Достаём из БД по логину хеш солёного пароля.
    3. С этой солью хешируем введённый пользователем при авторизации пароль и сличаем хеши. Совпали -- значит пускаем.

    Шифрование других данных, очевидно, нужно уже обратимое, чтобы можно было расшифровать. И теперь есть два варианта: серверное и клиентское шифрование.

    Серверное не имеет смысла, поскольку скомпрометированный сервер означает утечку всего необходимого для расшифровки данных. Не скомпрометированный сервер означает, что данные и так вроде бы в безопасности. Значит шифровать не нужно (ну кроме некоторых специальных случаев).

    Клиентское шифрование - это когда сервер не имеет возможности расшифровать данные. Они шифруются на клиенте перед отправкой ключом, который не покидает пользовательского компьютера. Потом клиент снова запросит шифрованные данные с сервера и расшифрует его тоже сам. Это иногда имеет смысл. Например если вы храните keychain с паролями на сервере, но не хотите их утечки в случае взлома сервера.

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

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

    О, чуть не забыл. Есть опасность утечки незашифрованных данных из датацентров при наличии физического доступа к жестким дискам. Чтобы обезопасить себя в этом смысле, можно применить прозрачное шифрование файловой системы. Работающая операционная система будет знать ключ для расшифровки данных, но отсоединённый диск становится без ключа бесполезным. Однако это малоэффективно, если украдут весь сервер вместе с дисками. Зато эффективно против восстановления жуликами данных, если диск сгорел, а его сисадмин выбросил не просверлив.

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

    Если вы задаёте вопрос о необходимости шифрования, значит вам ничего сверх вышесказанного шифровать не нужно. Это усложнит систему, сделает её менее надёжной, более (как ни парадоксально) уязвимой и отнимет ресурсы процессора, памяти, не даст использовать или усложнит кэширование и прочие оптимизации.
    Ответ написан
    Комментировать
  • Интеграция Linux и MySQL?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    В данном случае - хранить юзеров в MySQL, а в систему их выводить через PAM. Рута обходить каким-нибудь макаром, а остальных пробрасывать в MySQL. Не знаю, правда, делал ли так кто, но вот юзеров из AD так запросто цепляют.
    Ответ написан
    4 комментария
  • Не пойму чего хочет работодатель, как реализовать fronted через api?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    Правильно понимаете, рендерить html-шаблон не нужно. Нужно web-сервером отдать статику фронта с корневого URL'а, а javascript-код этого фронта будет дёргать эндпоинты вашего API.
    Ответ написан
    21 комментарий
  • Почему компании не индексируют зп?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Видать спецы, подходящего для них уровня, успешно хантятся. Иначе бы индексировали.
    Ответ написан
    1 комментарий
  • Что делать если на ресурсе не адекватная модерация?

    TosterModerator
    @TosterModerator Куратор тега Хабр Q&A
    Модератор Хабр Q&A
    Пожалуйста, идите на ресурс, модерация которого вас устраивает.
    Я уже объяснял вам, что суть публикуемых вами вопросов сводится не к вопросам использования информационных технологий, а к "кто мне больше заплатит?" , "кто меня не обманет?", "как я больше заработаю?" – все эти вопросы лежат за пределами предметной области данного Сервиса.
    Ответ написан
    2 комментария
  • Какую php библиотеку использовать для работы с БД?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Для начала надо определиться, о каком инструменте речь.
    Есть три вида инструментов

    1. DBAL - просто класс для выполнения запросов. PDO практически на 90% покрывает задачи такого класса.
    Запросы пишутся вида
    $user = $db->prepared_query("SELECT * FROM users WHERE id = ?", [$id])->fetch();

    2. Query builder - построитель запросов.
    $user = $db->select('*')->from('users')->where('id', $id);

    3. ORM - запросы скрыты внутри, мы пишем только штуки типа $user = User::load($id);

    Максимально гибким, разумеется, является первый.
    Ответ написан
  • Как на FENOM вырезать из строки слово?

    glaphire
    @glaphire Куратор тега PHP
    PHP developer
    stripString - это кастомная функция, что она делает?
    По теме - если ничего из официального списка модификаторов не подходит, то можно добавить написать свой обработчик строки в коллбеке по этой документации. Если и с этим беда, то можно на стороне контроллера подготовить данные и передать их шаблон отдельным массивом.
    Ответ написан
    2 комментария
  • В чём смысл hash_equals?

    glaphire
    @glaphire Куратор тега PHP
    PHP developer
    Если судить по документации, то hash_equals не то же самое, что ===, чтобы избежать атаки по времени. Можно почитать сорс, чтобы увидеть, что там есть дополнительная внутренняя логика.
    Ответ написан
    2 комментария
  • Функция getimagesize() выкачивает файл для получения инфы или нет?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Да
    Ответ написан
    Комментировать
  • Есть ли что-то лучшее, чем гитхаб, особенно в плане работы с замечаниями к PR?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    ты не в тот софт зашел

    вс рюшечки и ишшуе - это Джира (экосистема) и аналоги

    а Hub - это хаб систем контроля версий git, туда кроме кода, веток и комментариев ничего не положено
    Ответ написан
    5 комментариев
  • Как суммировать значения value в select option?

    0xD34F
    @0xD34F Куратор тега JavaScript
    По наличию какого класса будем опознавать элементы, которые должны быть подвергнуты суммированию; куда надо записывать сумму; и как эту сумму посчитать:

    const className = 'select';
    const sumEl = document.querySelector('.sum');
    const sum = elements =>
      Array.prototype.reduce.call(
        elements,
        (acc, n) => acc + (+n.value || 0),
        0
      );

    Делегирование, назначаем обработчик события change один раз:

    const updateSum = () => sumEl.textContent = sum(document.getElementsByClassName(className));
    document.addEventListener('change', e => e.target.classList.contains(className) && updateSum());
    updateSum();

    Или, назначаем обработчик каждому элементу индивидуально:

    const selects = document.querySelectorAll(`.${className}`);
    const updateSum = () => sumEl.innerText = sum(selects);
    selects.forEach(n => n.addEventListener('change', updateSum));
    updateSum();
    Ответ написан
    3 комментария
  • По каким реквизитам организации происходит проверка на наличие DUNS-номера?

    ivanvorobei
    @ivanvorobei
    iOS разработчик, канал https://t.me/sparrowcode
    Если вам не звонили для подтверждение DUNS, то у вас еще нет этого номера. Он не присваивается по умолчанию. Вам нужно получить его и подтвердить организацию. Мне чаще всего звонили.

    Есть случаи странного поведения, когда аккаунту запрещали регистрацию для юр.лица потому что оно в России / луна в Юпитере и кто знает ещё почему. Проблема решалась связью через саппорт. Если не получается ввести данные, напишите им напрямую. Они добавят вручную. Почта саппорта: applecs@dnb.com

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

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Куча корпоративных клиентов, с программами заточенными ТОЛЬКО под IE
    Ответ написан
    Комментировать
  • Какие аргументы запуска Chrome вы используете?

    Никакими
    Ответ написан
    Комментировать
  • Куда идти на стажировку начинающему фронтенд разработчику?

    @Mysianio
    вайти в айти
    Я попал на свою работу на 2 курсе после того, как походил мероприятия от компании.
    Это реально действенный способ не только показать себя, но и понять, насколько ты ничтожество.
    Сразу смирись с мыслю, что после хакатона/стажировки ты уйдешь без своей самооценки как разработчик
    Ты сразу сократишь свой список знаний до 'немного знаю html' :)
    Однако после этого пойдет дикий памп твоего самообучения
    В универах иногда есть ярмарки профессий, глянь там. Иного места получения информации о стажировках нет, разве что случайно наткнуться в интернете.
    Не бойся браться за все, что попадает в руки, все пойдет в копилку.
    Ответ написан
    1 комментарий
  • Как вы используете jQuery и прочие библиотеки JS, установленные через npm?

    @deliro
    Собирают исходники в бандл (bundle) системами сборки — webpack / gulp. На выходе получают один js файл (если не использовать code splitting), в котором есть все библиотеки, выполнен tree shaking (удалён мёртвый код), код минифицирован (чтобы меньше весить и быстрее передаваться пользователю) и доведён до целевой версии (babel, который позволяет писать разработчику код с новыми фичами (из ES6), переводя его в целевой (сейчас это чаще всего ES5))

    Далее этот бандл автоматически или (реже) вручную внедряется в HTML.

    То, про что говоришь ты — это примерно как в 2020 писать на скалах углём.
    Ответ написан
    6 комментариев
  • Как найти языковые константы в html с помощью регулярных выражений?

    glaphire
    @glaphire Куратор тега PHP
    PHP developer
    Живой пример /[A-Z_]{2,}/
    Upd. Более правильным будет ответ /\b[A-Z_]+\b/
    Ответ написан
    3 комментария