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