WOLF 2018 Ответов: 2

Как обработать текст перед отправкой его на сервер


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

Что я уже пробовал:

Я пытался сделать post-запрос на JavaScript. Но это было для многих хлопот, они были бы лучшим вариантом, чем это.

2 Ответов

Рейтинг:
9

David_Wimbley

Короткий ответ: безопасное шифрование javascript невозможно. Вам необходимо внедрить SSL-сертификаты.

Google "secure javascript encryption", чтобы узнать больше об этом, но вам лучше получить бесплатные ssl-сертификаты через letsencrypt и реализовать SSL таким образом, а не пытаться реализовать решение для шифрования javascript, которое уязвимо для атак.


WOLF 2018

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

David_Wimbley

SSL обеспечивает сквозное шифрование, нет никакого способа просмотреть сообщения, отправленные на сервер и с него, если вы используете SSL cert. Если у вас все еще есть вопросы, я предлагаю прочитать о man in the middle attacks со ссылкой на SSL-сертификаты.

WOLF 2018

Да, но я имел в виду, что да, он шифрует его, но когда он попадает на сервер, он полностью виден. Таким образом, он будет сохранен в открытом тексте. Вот почему RC4 остановил бы его хранение таким образом. Кроме того, я придумал способ запуска шифрования и кодирования из JavaScript, и эта мысль была ssl, так что я получил и то, и другое, я думаю. В любом случае спасибо

David_Wimbley

Шифрование ваших данных на стороне сервера, которое является полностью нормальным и реализовано с помощью SSL, является безопасным. Шифрование на стороне клиента бесполезно, так как ключи и методы шифрования видны конечному пользователю.

Я также предлагаю, учитывая ваши комментарии, прочитать о том, как SSL шифрует соединения/работает с запросами в браузере. Ваш страх того, что он будет в обычном тексте для пользователя, который получает доступ к приложению, не имеет большого смысла, учитывая, что любые атаки будут исходить от третьей стороны.

Рейтинг:
1

MadMyche

Вот те варианты, которые у вас есть

ПРОТОКОЛ HTTPS защитит данные при транспортировке из приложения(браузера) на сервер. Да, сервер собирается расшифровать сообщение, как только оно прибудет, но оно может быть немедленно зашифровано для его времени на сервере.

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

Узел Полотна это стандартизированный двоичный язык, который позволяет использовать то, что обычно считается серверными языками в браузере. Он относительно новый, поэтому нет множества сценариев, доступных для любого конкретного языка. Вам нужно будет провести собственное исследование, чтобы увидеть, является ли это жизнеспособным вариантом.

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


WOLF 2018

Я использую https и у меня есть шифрование RC4 и кодировка base64 а затем это отправляется на сервер таким образом я не могу прочитать сообщение только они могут