Можно ли применить какие-либо меры защиты или ограничения к кэшам приложений HTML5? - PullRequest
1 голос
/ 24 мая 2011

(я имею в виду кеши / манифесты приложения, между прочим, не локальное хранилище.)

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

Чтобы обойти это, злоумышленник может скопировать файлы кэша приложения из папки данных браузера другого пользователя или непосредственно загрузить файл манифеста.

Есть ли способ предотвратить это? Какие-нибудь встроенные механизмы?

1 Ответ

1 голос
/ 24 мая 2011

Чтобы обойти это, злоумышленник может скопировать файлы кеша приложения из данных браузера другого пользователя папка ...

Только при физическом доступе к машине, или если машина была серьезно взломана. Но есть нет защита от этих типов атак. Современные браузеры должны в достаточной степени изолировать кэши приложений от конкретных доменов. Междоменный доступ просто не разрешен.

... или напрямую загрузите манифест файл.

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

... Какие-нибудь встроенные механизмы?

Нет встроенного механизма безопасности для applicationCache. Я рассматривал это в своих автономных приложениях, и единственная мера безопасности, которую я видел, - это шифрование кэшированных файлов. Шифрование на стороне клиента менее чем идеально , но вы могли бы зашифровать содержимое ваших кэшированных файлов и потребовать ключ для их расшифровки при запуске приложения / страницы. В прошлый раз, когда я исследовал это, крипто-библиотека JS от нескольких студентов из Стэнфорда была лучшей из всех, что я нашел.

...