JS Безопасность символов - Можно ли создать неуникальный символ? - PullRequest
0 голосов
/ 14 апреля 2020

Я пишу странный вид веб-приложения, предназначенного для взаимодействия с другими сайтами, загруженными в браузер. Это довольно просто сделать через MessageChannel s. Теперь эти приложения должны получить доступ к защищенным ресурсам и получить разрешение от пользователя. Использование чего-либо, что позволило бы этим другим приложениям взаимодействовать с сервером (таким как OAuth), не вариант, поскольку нет сервера: требуется поддержка соединений P2P и E2EE. У меня была одна идея ограничить доступ - использовать символы: например, если отправлено сообщение, ссылающееся на ресурс, оно может содержать символ для этого ресурса. Затем, если другое приложение хочет этот ресурс, оно может извлечь его с помощью этого символа.

Проблема в том, что я не уверен, что это безопасно. Есть ли способ преднамеренно создать символ, который не является уникальным? Если это так, он может потенциально использоваться в качестве вектора атаки в моем веб-приложении: вредоносное «клиентское» приложение может просто угадывать символы, пока не найдет тот, который соответствует чему-то полезному.

Кроме того, если есть лучший способ сделать это или вы видите какие-либо другие проблемы с ним, не стесняйтесь, дайте мне знать;)

РЕДАКТИРОВАТЬ : Для пояснения: Приложение A создает Символ для передачи Приложению B. С этим Символом Приложение B может получить доступ к определенным ресурсам (файлам, объектам и т. Д. c.), Которые отправляются обратно ему. Есть ли способ для Приложения C получить доступ к Символу, эквивалентному символу , данному для Приложения B, без фактического предоставления Символа из Приложения A или B?

РЕДАКТИРОВАТЬ: Подтверждено, что символы, никоим образом не могут быть переданы через MessageChannels. Так что нет особого смысла в вопросе ...

1 Ответ

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

Символы не могут быть переданы через MessageChannels. Протестировано в Firefox.

...