Если есть минутка, буду очень благодарен если черкнёте, что думаете по следующему поводу:
Есть довольно тяжелый скрипт, в нем после необходимых проверок на валидность, вычисляются числовые/текстовые параметры MySQL запроса, а также и сама структура запроса, количество подключаемых таблиц и сами имена этих таблиц.
У запроса есть LIMIT и его параметры определяются номером текущей страницы (прокрутки колесика). На первой странице текст MySQL запроса приходит с сервера вместе с контентом в виде зашифрованной строки.
При AJAX-подгрузке контента зашифрованный запрос MySQL уходит на сервер и возвращается с новым контентом и новым зашифрованным запросом.
Насколько это безопасно, отправлять SQL запрос, как есть "SELECT * LIMIT M,N", но в зашифрованном виде?
Ориентировачные функции шифровки/дешифровки:
function encrypt($key, $payload)
{
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
$encrypted = openssl_encrypt($payload, 'aes-256-cbc', $key, 0, $iv);
return base64_encode($encrypted . '::' . $iv);
}
function decrypt($key, $garble) {
list($encrypted_data, $iv) = explode('::', base64_decode($garble), 2);
return openssl_decrypt($encrypted_data, 'aes-256-cbc', $key, 0, $iv);
}
$key = 'Unic secret code';
$payload='Hello world!';
$code=encrypt($key, $payload);
$decode=decrypt($key, $code);
echo $code.'<br>'.$decode;
Спасибо.
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.