Шифрование данных MySQL

У меня есть мобильное приложение, которое отправляет данные в базу данных MySQL с помощью PHP. Я хочу использовать функцию AES_ENCRYPT в файле PHP для шифрования моих данных на сервере MySQL. У меня нет большого опыта в шифровании данных.

Защитит ли этот метод мои данные? Если нет, то какие другие методы я могу использовать для защиты своих данных?

Я прочитал учебник, в котором говорится, что ключ будет храниться в файле PHP, является ли этот метод безопасным и есть ли способ защитить свой ключ от взлома?

Вы немного забегаете вперед. Сначала определите точно, от какой атаки вы хотите защитить себя — нет смысла реализовывать кучу мер безопасности против атаки, которая может даже не существовать!

Luke Joshua Park 29.05.2019 03:05

Вы можете создать хранимую процедуру и иметь там ключ. Тогда ключ не будет жить в вашем PHP. На самом деле это не вопрос PHP. Ни вопрос по андроиду. Вам следует более подробно остановиться на этом, возможно, он больше подходит для security.stackexchange.com.

user3783243 29.05.2019 04:36

@user3783243 user3783243 Хранение ключа на сервере MySQL, возможно, хуже - взлом там дает злоумышленнику и ключ, и зашифрованный текст, тогда как хранение ключа на сервере PHP (при условии, что это два изолированных сервера) - нет.

Luke Joshua Park 29.05.2019 04:46

@LukeJoshuaPark Нарушение PHP передаст учетные данные серверу mysql. Если это скомпрометировано, то и mysql.

user3783243 29.05.2019 04:51

@user3783243 user3783243 Да, но нарушение только сервера MySQL не приведет к раскрытию ключа, если он хранится на сервере PHP. Однако, согласно вашему предложению, взлом MySQL приведет к раскрытию как зашифрованного текста, так и ключа. Что еще хуже!

Luke Joshua Park 29.05.2019 05:18

@LukeJoshuaPark PHP также выставит и то, и другое, что то же самое? Нарушение mysql будет зависеть от того, какой пользователь был взломан и каковы были разрешения.

user3783243 29.05.2019 05:38

Я думаю, вы неправильно понимаете, что я говорю. Я никогда не говорил о взломе PHP. Только нарушение MySQL - и я говорю, что гораздо лучше, если ключ не будет на сервере MySQL, если это нарушение произойдет!

Luke Joshua Park 29.05.2019 05:42

Всем спасибо, я уже говорил, что у меня меньше знаний в информационной безопасности, @LukeJoshuaPark чем я занимаюсь, я собираю данные от участников для исследования, мне и мне нужно защитить конфиденциальность этой информации, что мне сказали заключается в том, что я полагаюсь на уровень безопасности университетских серверов, и мне приходится шифровать данные, чтобы защитить информацию участников. в одном руководстве объяснялось использование функции aes_encrypt, и я хотел знать, подойдет ли это для моей проблемы.

Mari 29.05.2019 10:23
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
8
241
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

В вашем сценарии (вы упоминаете университет) я бы сказал, что хранения ключа на вашем PHP-сервере (нет сервер базы данных) будет «достаточно».

Затем защита ключа зависит от того, насколько хорошо защищен этот PHP-сервер.

Я рекомендую вам выполнять шифрование в вашем PHP-коде, а не с помощью AES_ENCRYPT — это не позволит серверу базы данных узнать, что такое ключ, и означает, что взлом сервера базы данных не раскроет никакой информации.

Вас также может заинтересовать статья этот репозиторий, в которой показано, как безопасно шифровать и расшифровывать данные в PHP.

Большое спасибо, это очень полезно.

Mari 29.05.2019 17:12

Другие вопросы по теме