1- Если вы действительно хотите кодировать сообщения электронной почты, и нужно декодировать их в будущем, лучше всего смотреть на функции шифрования данных MySQL, как ENCODE() и DECODE(). Сначала вам нужно настроить «соль». Это похоже на секретный код. Это может быть одинаковым для каждой записи, как это:
SELECT DECODE(email, 'mysecretsalt') FROM Table WHERE id=1
Или, вы можете сделать соленую часть из кода и еще одно поле в таблице, как это:
SELECT DECODE(email, CONCAT('mysecretsalt', id)) FROM Table WHERE id=1
2- Set до определенного пользователя в вашей базе данных, которая ТОЛЬКО имеет доступ к этой конкретной таблице, и ТОЛЬКО имеет привилегии INSERT для добавления записей, а затем другого пользователя, который имеет только привилегии SELECT при получении записей. Кроме того, заблокируйте этих пользователей до «localhost». Если хакер получает один из них, они не могут многое сделать.
Кроме того, когда вы получаете электронное письмо от клиента в форме переменной запроса (GET или POST), чтобы защитить от атак SQL-инъекций, либо escape-символов (в PHP, вы можете использовать mysqli_real_escape_string()
) или просто избавиться всех символов, которые не принадлежат. В PHP это будет выглядеть так:
$email = preg_replace('/[^A-Za-z0-9\\[email protected]_]/', '', $email);
Вот как мне это нравится.
Если кто-то может видеть вашу необработанную базу данных, вы уже делаете что-то неправильно. – woz
Я новичок в базе данных, пытаясь понять. можете ли вы объяснить об этом больше? – VDN
Вам просто нужно практиковать всю необходимую безопасность. Например, см. Http://www.acunetix.com/websitesecurity/webserver-security/ (любопытно, что на этой странице не упоминаются брандмауэры, возможно, потому, что ее очевидный должен иметь хорошо настроенный брандмауэр на всех серверах) – barryhunter