• Как могут взломать базу данных MySQL?

    @Z1odeypnd
    Здравствуйте.
    Технологий взлома уйма.
    В зависимости от того, какие привелегии получил "хакер" при вломе вашей БД - зависит очень много.
    Если он получил доступ только на чтение, то захешированные в MD5 пароли ему мало чем помогут, т.к. MD5 не имеет алгоритма обратной расшифровки и хэширование спасёт тем, что взломщик получивший доступ на чтение паролей - самих паролей не получит (есть конечно словарь MD5 хешей, то это другая история).
    Вообще для защиты любой БД есть несколько золотых правил:
    0. Переименовать дефолтного админа и защитить его сложным паролем.
    1. Для каждой БД должен создаваться свой владелец и несколько пользователей с разными наборами привелегий.
    2. Ни у одного из пользователей, созданных в п.1 не должно быть прав на изменение таблиц в соседней БД.
    Если есть необходимость обновлять соседние БД - делайте это триггером в соседней БД.
    3. Каждый внешний веб-сервис должен ходить в БД только с тем набором прав, которых ему достаточно для работы. Т.е. не нужно везде прописывать root и надеяться на лучшее.
    В этом случае, если взломщик получит привелегии этого пользователя, то сможет сделать только то, что разрешено этому пользователю. Тогда не выйдет "удалить все и сразу".
    Например, для наполнения католога товаров в интернет-магазине может быть отдельный пользователь, с правами на SELECT, INSERT, UPDATE, DELETE в таблице SHOP_PRODUCTS, например. И ничего более.
    А пользователи, приходящие в магазин за покупками могут делать SELECT, INSERT, UPDATE, DELETE только в таблицу CUSTOMER_CART. В коде веб-сервиса, естественно должна быть проверка, что покупатель редактирует СВОЮ корзину.
    Для показа каталога товаров - отдельный пользователь, имеющий право только на SELECT из таблицы SHOP_PRODUCTS.
    А продажу товара может делать отдельный пользователь, с правом только на UPDATE колонки AMOUNT в таблице SHOP_PRODUCTS. Пример:
    GRANT SELECT ON shopdb.SHOP_PRODUCTS TO 'trader_bot'@'shophost';
    GRANT UPDATE (AMOUNT) ON shopdb.SHOP_PRODUCTS TO 'trader_bot'@'shophost';

    И т.п. По принципу "Разделяй и властвуй."
    4. Писать запросы с использованием placeholder'ов (подстановку данных), что убережёт от SQL-инъекций.
    Пример:
    $DB->select('SELECT * FROM tbl WHERE a=? AND b=?', $a, $b);

    5. Если и БД и приложение, используещее БД установлены на одном сервере - отключить удалённый доступ к БД и работать через сокеты.
    6. Последний, но самый важный - БЕКАПЫ. При удалении всего и вся - нужно откуда-то восстановиться. Делайте бекапы и храните на отдельном сервере (не выставленном наружу).
    Ответ написан
    3 комментария
  • Куда переходить с Ubuntu 14.04?

    Q2W
    @Q2W
    Перешёл с ubuntu на debian stable несколько лет назад по той же причине.
    И радости моей нет предела с тех пор. Всё работает как часы.
    Ответ написан
    Комментировать
  • Куда переходить с Ubuntu 14.04?

    azrail_dev
    @azrail_dev
    Ушел с ubuntu сразу после релиза 14.04 на стабильный debian, проблем не встретил. Плюс к тому, что систему практически не пришлось изучать, всё знакомо. Сейчас перешел на 9, проблем так же нет. Используется для web-разработки и, иногда, для простенького видео монтажа. Гном не пробовал, стоит Mate.
    Ответ написан
    2 комментария
  • Как работать с файлами Linux subsystem в Windows 10?

    @Mi7teR
    Senior Jquery engineer
    создайте директорию в винде, к примеру C:\shared folder
    из подсистемы Linux путь к этой директории будет таким /mnt/c/shared folder
    Все изменения в этой директории будут видны из подсистемы Linux. Не трогайте вообще файлы в директории C:\Users\username\AppData\Local\lxss.
    Поместите проект в директорию windows, хоть на рабочий стол, куда угодно. Для nginx root будет выглядеть как /mnt/$drive_letter/$path, где $drive_letter - буква диска, $path - путь к root директории проекта в unix стиле, без виндовых бэкслэшей и с соблюдением регистра букв в пути.
    Ответ написан
    3 комментария
  • Как вы живете с большим количеством открытых вкладок браузера?

    int128
    @int128
    developer
    Лекарство от прожорливости The Great Suspender
    05VzCys55RvbGGoZxVhk0fUS7Ttvjr_OFxRlEugv

    А есть еще Speedyfox, он архивирует историю и прочее. После этой процедуры хром намного шустрее начинает работать. Надо только не забывать периодически запускать.
    Ответ написан
    Комментировать