захватить подпись пользователя со стороны клиента - как преодолеть проблемы безопасности? - PullRequest
1 голос
/ 16 апреля 2020

У меня есть форма (сделано в reactJS), и мне нужно попросить подпись пользователя. насколько я могу сказать, что все решения, которые есть в браузере, передаются для создания файла base64. Это создает проблему безопасности для меня, так как каждый на стороне клиента может предоставить свой собственный файл вместо сгенерированного, что может привести к загрузке вирусов и тому подобного. У меня нет возможности передать его через антивирус или другие подобные решения. Есть ли способ проверить это на стороне сервера? или совсем другой подход к этому?

Спасибо

1 Ответ

0 голосов
/ 16 апреля 2020

Вы запрашиваете серверную часть для проверки файлов без загрузки самого файла, это на самом деле невозможно в буквальном смысле, но можно подумать о некоторых творческих подходах к этому, таких как SHA 256 проверка на стороне клиента закодированного файла base64 с использованием некоторых связанных js библиотека как js -sha256 :

  1. На стороне клиента: файл подписи пользователя с именем signature.sig со следующим содержимым: SignatureFile1234567890
  2. Клиент сторона: base64 кодирует этот файл: U2lnbmF0dXJlRmlsZTEyMzQ1Njc4OTA=
  3. Сторона клиента: sha256 указанной строки base64 (генерируется с использованием js -sha256): 2bdb56a39b4ea7f5831740e0d0b6d2b13a462e4ed5c9145594a6635e76562010
  4. Сторона сервера: отправить клиенту sha256 га sh файла подписи, хранящегося на сервере
  5. На стороне клиента: проверить оба хэша

из c, это проверка целостности, представленная спецификацией библиотеки c уязвимостей и выбранных коллизий алгоритма ha sh, и вы сделаете ha sh доступной для подписи клиентской стороны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...