Какие меры безопасности используются для шифрования данных в базе данных mysql?

  • 6 августа 2023 г. 7:14
Ответы на вопрос 3
1. Использование шифрования данных с помощью функции AES_ENCRYPT и AES_DECRYPT.
2. Использование функций SHA-1 и MD5 для шифрования паролей.
3. Использование пользовательских хранимых процедур для шифрования данных.
4. Использование сертификатов SSL и TLS для шифрования данных.
5. Использование правил безопасности при доступе к базе данных, например, запрет на использование паролей в явном виде.
6. Использование брандмауэра для предотвращения несанкционированного доступа к базе данных.
7. Использование правил именования пользователей и паролей для безопасного доступа.
Вместо использования цикла foreach для привязки параметров, каждый параметр теперь привязывается отдельно. Вместо этого кода:

```
foreach ($params as $key => $value) {
    $statement->bindParam($key, $value);
}
```

Теперь код выглядит так:

```
$statement->bindParam(':user_name', $this->user_name);
$statement->bindParam(':user_email', $this->user_email);
$statement->bindParam(':user_password', $this->user_password);
$statement->bindParam(':user_profile', $this->user_profile);
$statement->bindParam(':user_status', $this->user_status);
$statement->bindParam(':user_created_on', $this->user_created_on);
$statement->bindParam(':user_verification_code', $this->user_verification_code);
```

Такая замена была сделана, потому что bindParam($key, $value) не работал в цикле foreach.
ini_set('display_setup_errors', 1); - Удалите эту строку, она бессмысленна.

ini_set('error_reporting', E_ALL); и ini_set('display_errors', 1); - Перенесите эти строки в общий файл, который включается во все остальные файлы.

empty после trim - Удалите эту строку, так как проверка на существование значения не имеет смысла.

if(trim($_POST['user_name']) && trim($_POST['user_email']) && trim($_POST['user_password'])) - Перепишите эту проверку следующим образом:

$user_name = trim($_POST['user_name']);
$user_email = trim($_POST['user_email']);
$user_password = trim($_POST['user_password']);
if($user_name && $user_email && $user_password)

Проверка if(isset($_SESSION['user_data'])) - Перенесите эту проверку в другое место, так как она не должна быть частью этого кода.

header('Location: '); - Добавьте после этой строки команду exit.

_once из require_once - Удалите '_once' из require_once, так как это избыточно.

require('database/ChatUser.php'); - Создайте простенький автозагрузчик, который будет автоматически подключать необходимые файлы. 

Проверку if($user->saveData()) - Удалите эту проверку, так как она бессмысленна. 

Вывод сообщений об ошибках в html - Создайте единый шаблон для вывода сообщений об ошибках и используйте его везде.

При ошибке выводите пользователю уже введенные значения (кроме пароля).

createAvatar - Вынесите этот функционал в отдельный класс.

$statement->execute($params) - Упростите этот код, заменив его на простой вызов execute с параметрами массива $params.

return $user_data - Переделайте этот блок кода, чтобы никаких проверок не было и чтобы переменная $user_data всегда была определена.
Похожие вопросы