2015-01-09 2 views
1

Каков наилучший способ введения санитарии в Javascript при работе с зашифрованными данными? Допустим, что Боб вводит код малиция в форме вместо обычного сообщения, мой JS завершает его с помощью RSA и отправляет на сервер, где сообщение ожидает, что Алиса его получит. После дешифрования на компьютере Алисы вредоносный код, например, крадет какой-то важный секрет из LocalStorage.XSS в Javascript при отправке зашифрованных данных на сервер

Я прав, единственный способ проверить, содержит ли сообщение плохой код сразу после дешифрования? Может быть, разрешено разрешать только буквенно-цифровые символы с некоторыми другими базовыми, а когда дешифрованное сообщение содержит что-то еще, просто прекратите выполнение сценария и удалите msg из памяти?

ответ

0

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

Так, просто сделать что-то вроде этого:

  1. Боб входит вредоносное сообщение и шифрует его с помощью RSA.
  2. Сообщения отправляются на сервер
  3. Алиса получает свое сообщение, декодирует его и выполняет сообщение дезинфицировать перед отображением. Даже простая замена котировок (и ') и скобках (< и >) с соответствующими объектами HTML (&quot;,), а также с помощью JavaScript, прежде чем показывать дешифрованное сообщение, достаточно, чтобы Алиса была в безопасности от XSS.

Таким образом, код не украдет ничего от Алисы.

Смежные вопросы