Ответы пользователя по тегу MySQL
  • Достаточна ли защита сайта php?

    pro100chel
    @pro100chel
    Python && PHP Developer
    Как уже многие писали - не стоит сейчас писать самому что-то уже давно реализованное по лучшим практикам. Как минимум стоит использовать PDO или же ORM.
    А еще лучше использовать все это вместе с каким-нибудь популярным фреймворком по типу Laravel. Там уже все реализовано: от аутентификации и авторизации до запросов к сторонним API.

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

    - использовать на сайте SSL
    - пароль в базе нужно хранить в хешированном виде.
    и т.д.

    Самые распространенные угрозы описаны в OWASP TOP 10. Почитайте на досуге.

    Хешировать пароль на клиенте тоже правильно. Задача сервиса не только запретить доступ к сервису злоумышленникам, но и сохранить пароль клиента в тайне. Передавая пароль на сервер в открытом виде, пусть даже и по защищенному соединению, можно его отдать злоумышленникам. Как минимум запросы могут логироваться, и пароль в открытом виде будет храниться в логах. Злоумышленник может завладеть каким-либо образом доступом к серверу и украсть пароли тысяч или миллионов пользователей. Или же встроить в PHP скрипт определенный код, который будет пароли передавать на удаленный сервер (при владении доступом к серверу бекэнда).

    Да, можно высунуть наружу только балансер или фронтэнд, а бекэнды держать без доступа к внешней сети. Но а если злоумышленником является разработчик/сотрудник, который может вытащить данные из этого сервера?

    Хеширование пароля на клиенте является хорошей практикой. Facebook делает что-то похожее. В таком случае ни владелец сервиса, ни злоумышленник не смогут получить доступ к открытому паролю пользователя. Это защитит другие учетные записи пользователя (если он использует один пароль или главную часть пароля в других сервисах).
    Ответ написан
    Комментировать
  • Где хранить Mysql или в Redis?

    pro100chel
    @pro100chel
    Python && PHP Developer
    И там и там.

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

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

    Такое часто делают с токенами аутентификации. Пишут и в базу и в кеш. Сначала лезут в кеш. Если в кеше нет данных - бегут в базу. Если уже и в базе нет данных о токене - посылают пользователя в баню. Если данные в базе все-таки есть - то пользователь пропускается и данные из базы заносятся в кеш для того чтобы в следующий раз не нагружать субд и доставать данные прямо из редис.
    Ответ написан
  • Защита от SQL-инъекций?

    pro100chel
    @pro100chel
    Python && PHP Developer
    Используй подготовленные запросы или ORM и не парься.

    А так да. Защиту от инъекций нужно на все запросы делать.
    Ответ написан
    7 комментариев
  • General error: 2006 MySQL server has gone away на отдыхающем сервере WTF?

    pro100chel
    @pro100chel
    Python && PHP Developer
    Мускул рвет коннект по таймауту если нет запросов.

    Есть 2 решения.

    1. Пинговать сервер простыми мусорными запросами раз в какой-то промежуток времени.

    2. В конфиге увеличить значение таймаута. Вот тут описано как это сделать на linux тык
    Ответ написан
    Комментировать
  • Пул соединений mysql python?

    pro100chel
    @pro100chel Куратор тега Python
    Python && PHP Developer
    В пуле соединений нет смысла в телеграм боте. В секунду можно обслужить не более 30 человек (ограничение отправки сообщений в телеге)
    Mysql способен хорошо держать много коннектов, а 30 соединений ему вообще по барабану
    Ответ написан
    Комментировать
  • Какая сейчас актуальна бесплатная конфигурация VDS-сервера для совместимого набора максимально свежих PHP + MySQL + панель управления хостом?

    pro100chel
    @pro100chel
    Python && PHP Developer
    Сервак бесплатный можно взять в любом облаке, которое предоставляет бесплатный триал (гугл, маилру, яндукс, амазон, микрософт)

    Касаемо софта то тут лучше всего самому все ставить, либо же использовать всякие там докеры и прочее что упрощает жизнь.

    Пыха 8.0 fpm, nginx, mysql.

    А если не шаришь вообще че да как то бери fastpanel.
    Ответ написан
  • Каким образом организовать работу клиент-сервер на python для обработки данных с устройств?

    pro100chel
    @pro100chel Куратор тега Python
    Python && PHP Developer
    1. Первый варик. Несколько десятков воркеров в виде потоков.
    Второй варик. Юзать асинхронность.
    Можно комбинировать.

    2. Не понимаю в чем у тебя проблема с БД. MySQL как и любая другая СУБД при правильной работе с ними хорошо держат нагрузку. Так что можешь не париться.
    Ответ написан
  • Как ввести русские слова в pymysql?

    pro100chel
    @pro100chel Куратор тега Python
    Python && PHP Developer
    Может проблемка с кодировкой в базе?
    Utf8 стоит?
    Ответ написан
  • Как получить id по названию в phpmyadmin?

    pro100chel
    @pro100chel
    Python && PHP Developer
    SELECT id FROM table_name WHERE nazvanie='toster'
    Ответ написан
    Комментировать
  • Что за пароль при установке mySql?

    pro100chel
    @pro100chel
    Python && PHP Developer
    Может ты все-таки сам переведешь что написано около этих полей, хотя бы через гугл или яндекс переводчик?
    Ответ написан
    4 комментария
  • Как из таблицы MySQL получить список в Python?

    pro100chel
    @pro100chel Куратор тега Python
    Python && PHP Developer
    Модуль pymysql. Загуглишь доку сам или за тебя?
    g.zeos.in/?q=Pymysql%20documentation
    Ответ написан
  • Что делать, если сбиваются настройки сортировки MySQL?

    pro100chel
    @pro100chel
    Python && PHP Developer
    Сортировать нужно не в phpmyadmin, а в sql запросе.

    Сначала делаешь запрос на получение последнего id, а потом уже делаешь запрос на получение последних новостей. Можно запросы объединить.

    Сортировать последние новости будешь либо на php, либо на фронте.
    Ответ написан
    Комментировать
  • Как правильно использовать БД?

    pro100chel
    @pro100chel
    Python && PHP Developer
    Это почти одно и то же. Только в первом случае ты на своем сервере создаешь базу, а во втором случае на чужом.

    Для начала можно на обычном хостинге создать базу. Только смотри на лимиты, иногда хостеры жмут по нагрузке и размеру базы. Также на хостинге база уже настроена практически. Можно подключаться удаленно и т.д.

    Также есть бесплатные варианты, их можешь найти по запросу в Google "Free mysql hosting".
    Ответ написан
  • Почему не сохраняется JSON в БД?

    pro100chel
    @pro100chel
    Python && PHP Developer
    Размер поля какой? В него вмещается твое значение?
    Попробуй тип поля TEXT, где хочешь products сохранить в БД.
    Ответ написан
    Комментировать
  • Как правильно реализовать счетчик просмотров?

    pro100chel
    @pro100chel
    Python && PHP Developer
    Создай в БД таблицу. Пусть она будет служебной. Так и назови systeminfo.

    Структура таблицы.
    Id, name, name_value
    Id число, name varchar, name_value число.

    Создай запись
    Id = 1, name = counter, name_value = 0

    В php
    $counter = R::load('systeminfo', 1);
    $counter -> name_value = $counter -> name_value+1;
    R::store($counter);
    Ответ написан
    Комментировать
  • Как организовать защиту подключения к базе данных в программе на c++?

    pro100chel
    @pro100chel
    Python && PHP Developer
    Не в каком случае нельзя хранить данные от БД на клиенте!

    Нужна затычка между клиентом и БД в виде сервера.

    Пишите сервер для работы с БД.
    Клиент отсылает запрос на получение или запись данных на сервер а сервер уже исполняет.

    Быстрее всего написать будет сервер на Python.
    Ответ написан
    9 комментариев