В настоящее время я занимаюсь разработкой веб-приложения, в котором я использую цифровую подпись форм с использованием карт гражданина Португалии и java-апплетов.
С обычными формами все шло гладко, пока я не столкнулся с проблемойвходные данные типа файла.Приложение поддерживает вложения, поэтому я создал отдельный менеджер вложений, в котором пользователь может отправлять или просматривать вложения.При отправке необходимо иметь два способа сделать это: обычная загрузка или подпись файла, а затем загрузка.
Моя первая идея состояла в том, чтобы позволить пользователю выбрать файл в поле ввода type = "file" иесли бы он / она нажал «подписать и загрузить», он запустил бы Java-апплет, чтобы сгенерировать подпись, которая будет помещена в скрытый ввод.Проблема заключается в ограничениях безопасности html, что делает выбранное значение файла недоступным из javascript (который также запрещает доступ к java-апплету) в некоторых браузерах.
Я также думал о вычислении хэша файла, который будетподписать на стороне сервера, а затем подписать его на стороне клиента, но это также не вариант.Определение хеша и его подписи должно быть на стороне клиента (юридические причины).
Другая идея состояла в том, чтобы использовать что-то вроде JUpload, но он не поддерживает некоторые случаи, когда соединение осуществляется по каналу SSL ссертификат клиента (который может произойти в зависимости от того, как был выполнен вход в веб-приложение).
Наконец, у меня даже появилась эта абсурдная идея открыть файл в апплете, подписать его и затем сохранить его на скрытом входев base64.Очевидно, это создает огромное ограничение на размер файла.
Итак, мой вопрос: каков наилучший подход к этой проблеме?Есть предложения?
Заранее спасибо;)