Шифрование сообщений при взаимодействии клиента и сервера.

Как зашифровать текст, перемещающийся между клиентом и сервером, в следующем коде. Я знаю что https будет шифровать туннель, но я хочу знать, как зашифровать текст.

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

<HTML>
<form method="POST" action="TESTING.php" enctype="multipart/form-data">
NAME:  <input type="text" name="username">
PASSWORD:  <input type="text" name="password">
<input type="submit" value="Save and Proceed">
</form>
</html>

<?php

if(isset($_POST['username']))
{
echo"db operation";
}
?>

0

Решение

Нет смысла применять два уровня шифрования друг над другом. Если вы используете https, это должно быть а) безопасно и б) достаточно, за исключением очень Особые случаи.

Кроме того: не существует надежного способа реализовать безопасное шифрование между веб-клиентом и сервером на уровне приложений. Проблема просто в том, что все знания, необходимые для шифрования на стороне клиента, чтобы сервер смог снова расшифровать данные, сделали бы усилия бесполезными. Кроме при использовании асимметричного шифрования на основе ключей, как это делает ssl, но опять же, является что сделано для протокола https.

Да, и примечание: алгоритм суммы md5, который вы упоминаете в своем примере кода, не шифрование, это хеширование. Кстати, очень простое хеширование, обеспечивающее очень низкий уровень безопасности. Это нечто совершенно другое. Конечно, вы могли бы хэшировать пароль на стороне клиента (с помощью javascript, а не php), но в конце это не имеет смысла.

Что вы должны делать в типичных ситуациях, так это (лучшая практика): использовать https для транспортного уровня (форсировать его, отказаться от использования http). Затем на стороне сервера примените хорошо и «посоленный» алгоритм хеширования на пароле и сохранения этого хеша в базе данных. После запросов аутентификации на основе этих учетных данных вы сравниваете хэши пароля (один хэш для базы данных с паролем, использованным во время аутентификации). Таким образом, сам пароль вообще не хранится на стороне сервера.

Повеселись!

0

Другие решения

Других решений пока нет …