标签: html5-appcache

本地存储可以被认为是安全的吗?

我需要开发一个可以长时间离线运行的Web应用程序.为了使其可行,我无法避免在本地存储中保存敏感数据(个人数据,而不是您只存储散列的数据类型).

我接受这不是推荐的做法,但是我没有做多少选择来保护数据:

  • 使用stanford javascript加密库和AES-256将所有内容整合到本地存储中
  • 用户密码是加密密钥,不存储在设备上
  • 通过ssl从单个受信任服务器提供所有内容(在线时)
  • 使用owasp antisamy项目验证进出服务器上本地存储的所有数据
  • 在appcache的网络部分中,不使用*,而是仅列出与受信任服务器连接所需的URI
  • 通常尝试应用OWASP XSS备忘单中建议的指南

我很欣赏魔鬼经常处于细节之中,并且知道对于本地存储和基于javascript的安全性存在很多怀疑.任何人都可以评论是否有:

  • 上述方法的根本缺陷是什么?
  • 这些缺陷的任何可能的解决方案?
  • 当html 5应用程序必须长时间离线运行时,是否有更好的方法来保护本地存储?

谢谢你的帮助.

security html5 owasp local-storage html5-appcache

147
推荐指数
3
解决办法
9万
查看次数

Safari 7应用程序缓存不起作用

在Safari 7中,带有清单的主html文件在脱机时可加载,但不会加载任何外部资源,即使它们在清单文件中列为缓存.Safari的资源窗格列出了应用程序缓存中的文件,但不会加载它们.我尝试过一个非常简单的测试,检查清单文件的MIME类型,重命名清单文件,并尝试其他演示.这是一个在Chrome上正常运行的示例,但在Safari上,它不会在离线时加载粘性图片:http://htmlfive.appspot.com/static/stickies.html

这与AppCache在Safari,firefox中行为不端所描述的问题相同,但我认为这个问题并没有使问题变得清晰,我想提出一个具体演示的问题.是否有解决办法,或者Safari 7是否完全不支持主html文件之外的应用程序缓存?谢谢!

safari caching html5-appcache

65
推荐指数
1
解决办法
2050
查看次数

删除HTML5脱机AppCache

我有一个带有相关appcache清单的HTML文档.但现在我想摆脱离线应用程序缓存一段时间.

如果我从<html>标记中删除提示清单,那么已经拥有缓存版本的浏览器将继续使用该缓存版本.

如果我更新appcache清单,那么,无论如何,仍然有一个appcache.

删除脱机应用程序缓存的最明智的方法是什么?我想我可以更改清单,除了以下内容之外没有其他条目:

NETWORK:
*
Run Code Online (Sandbox Code Playgroud)

然后它实际上不会缓存任何东西.

但肯定有一种方法可以完全摆脱appcache和清单文件,不是吗?

html5 offline-caching manifest.cache cache-manifest html5-appcache

27
推荐指数
3
解决办法
2万
查看次数

我的HTML5应用程序缓存清单正在缓存所有内容

更新:

**当这个功能真的很新时我发布了这个问题,我现在意识到这个功能不应该以这种方式使用,除非它是通过JavaScript使用的.但对于大多数犯错误和滥用此功能的初学者而言,这种黑客攻击似乎是一个很好的解决方案.如果你想要缓存除HTML以外的所有内容,这应该用JS完成,或者你可以使用下面的解决方案**

我想我的问题归结为:如果使用HTML标记的manifest属性引用清单的文件属于MASTER CACHE ENTRIES,那么如何使用清单来动态页面.

我的文件看起来像这样:

CACHE MANIFEST

CACHE:
# IMAGES:
/stylesheets/bg.jpg
/stylesheets/cont_bg.png
#and so forth.. 

#EXTERNAL
http://chat.mydomain.com/themes/images/panel_bg.png
http://chat.mydomain.com/themes/images/images_core.png

####################################
#STYLE SHEETS:
/stylesheets/min.css
/stylesheets/css_night.aspx

#####################################
#JAVASCRIPT:
/JAVASCRIPT/header_javascript.js

#EXTERNAL:
http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.9/jquery-ui.min.js
http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js

FALLBACK:
/ /offline.php

NETWORK:
*
Run Code Online (Sandbox Code Playgroud)

现在的问题是,一旦我浏览不在清单中的页面,我的实际动态php文件,如index.php,当我第一次看到页面时,没有缓存chrome就是:

Adding master entry to Application Cache with manifest http://208.109.248.197/manifest.appcache

Application Cache Downloading event
Application Cache Progress event (0 of 28) 
...
Application Cache Progress event (28 of 28) 
Application Cache NoUpdate event
Run Code Online (Sandbox Code Playgroud)

到目前为止,在我实际加载页面之前一直很好,并且chrome会:

Application Cache UpdateReady event
Adding master entry to Application Cache with …
Run Code Online (Sandbox Code Playgroud)

manifest manifest.cache cache-manifest html5-appcache

23
推荐指数
2
解决办法
2万
查看次数

清单提取失败(9)

我已经和Appcache合作了很长一段时间,但最近我花了几周的时间来开发一个不同的项目.当我回到我的离线项目时,每次尝试下载清单的内容时都会出现此错误:应用程序缓存错误事件:清单提取失败(9)此后是2个地址; 调用清单的页面的文件和行号(在同一行的右侧),以及清单本身的相对URL(在第二行).单个资源的下载不会开始.

现在,其他人都在为这个项目工作,但我是唯一一个触及任何离线气味的人.该问题似乎与我的任何常见嫌疑人无关,例如清单中的语法错误(尝试清除所有文件,只是为了确定),清单被错误地提供,或者其中一个文件有问题被缓存.我不认为这是一个内存问题,因为我有超过30 gig的空间超出我正在缓存的文件的大小.此外,这在两周前工作,所以我假设我的设置没有问题.但是,似乎没有人知道这个错误到底是什么; 似乎没有人得到这个错误.我在网上找不到任何描述这个问题的东西.因此,我的问题是:

Manifest fetch Failed(9)是什么意思?

我的浏览器是Windows 7上的Chrome,并且是最新的.

google-chrome application-cache cache-manifest html5-appcache

20
推荐指数
2
解决办法
1万
查看次数

iOS Web App - 如何应对过度热衷的应用缓存?

HTML5过去一个月一直在开发一个非常复杂的网络应用程序.昨晚我iPhone突然决定缓存所有JS,CSS和图像,而不是加载任何更新的副本.这也发生在我的伙伴iPhone身上,所以我认为它会影响我们应用的所有用户.

毋庸置疑,清除浏览器缓存,删除Web应用程序,重新启动手机以及重新启动无线连接都无法解决问题.

删除<meta name="apple-mobile-web-app-capable" content="yes">解决了问题,但由于我们需要应用程序像...一样运行,因此会产生新问题.

我们不打算将旧技巧附加?number到我们所有脚本,样式表和图像的末尾.这是荒谬的.而且-如果我们要实现这样的事情,它会是某种动态的JS实现的.我们的应用程序是一个加载大多数脚本的HTML页面,其他页面是AJAX,其他数据也是通过AJAX获得的.我想这可以做到,但我希望有一个更优雅的解决方案.我知道,我觉得我不应该做任何事情,因为这一切都顺利完成了整整一个月.

使用cache-control,expires以及pragma <meta>标签不我们有什么好处或者,因为这纯粹是iOS的web应用程序的问题.缓存通常适用于移动版Safari,移动版Chrome和所有桌面浏览器.似乎iOS为应用程序(包括用户无法清除的Web应用程序)提供了单独的缓存.

似乎很多SO用户都遇到过这个问题,但我找不到任何令人满意的解决方案.有没有人在类似的情况下解决了这个问题?我可以使用清单文件指定缓存多个文件吗?似乎清单文件用于做相反的事情.

iphone html5 caching web-applications html5-appcache

15
推荐指数
1
解决办法
4123
查看次数

15
推荐指数
1
解决办法
4958
查看次数

Git:处理appcache?

我正在GitHub上托管一个OSS项目,该项目有几个不同的开发人员.该项目是一个Web应用程序,它使用AppCache告诉浏览器哪些文件应该脱机使用.

这是appcache文件的本质,它需要更新(例如,我们在注释中使用时间戳),一旦缓存中的文件更改为使缓存无效并强制浏览器重新加载所有文件.
当人们现在在不同的开发分支上工作时,他们正在使用每个提交更新appcache中的时间戳.

问题是,这将产生阻止自动合并的冲突.

  • 如何以一种不会在未来再次发生冲突的方式解决这个问题?
  • 其他开发团队在同样的情况下做了什么?

使用CVS我可以用$ Id $替换时间戳,让程序自动处理它...

git github html5-appcache

15
推荐指数
1
解决办法
535
查看次数

HTML5脱机清单停止缓存页面它被声明

我一直在玩缓存清单文件并尝试让它停止缓存它声明的页面.

来自HTML5 Rocks

用户导航到的包含清单的任何页面都将隐式添加到应用程序缓存中

高手.我希望清单文件缓存特定的工件,其中一个是我的在线单页应用程序HTML的离线版本,但不是缓存在线版本.

html5 offline manifest cache-manifest html5-appcache

14
推荐指数
1
解决办法
3985
查看次数

我的appcache清单测试有什么问题?

我正在尝试测试Appcache清单:

<?php

// reference: http://diveintohtml5.info/offline.html

header( "Content-Type: text/cache-manifest" );
header( "Cache-Control: max-age=0, private, must-revalidate" );

?>CACHE MANIFEST

# todo

/cachetest/tryme/vid/missouristate
Run Code Online (Sandbox Code Playgroud)

现在,这似乎在网络检查器中有正确的标题,并链接到html文件的顶部:

<!DOCTYPE html>
<html manifest="/cachetest/cache.manifest/index.php" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
Run Code Online (Sandbox Code Playgroud)

然而,没有证据表明这实际上是有效的.如果它工作,它应该不显示任何其他物品,除非它在该文件中的网络设置*,如所描述这里:

最后,我们来看一下网络部分.此缓存清单中的网络部分也只有一行,一行只包含一个字符(*).此字符在网络部分中具有特殊含义.它被称为"在线白名单通配标志."这是一种奇特的说法,即只要你有互联网连接,任何不在appcache中的东西仍然可以从原始网址下载.这对于"开放式"离线Web应用程序非常重要.这意味着,当您在线浏览这个假设的离线维护百科时,您的浏览器将正常获取图像和视频以及其他嵌入资源,即使它们位于不同的域中.(这在大型网站中很常见,即使它们不是离线Web应用程序的一部分.HTML页面是在本地生成和提供的,而图像和视频是从另一个域上的CDN提供的.)没有这个通配符标志,我们的假设当你在线时,离线启用的维基百科会表现得很奇怪 - 具体来说,它不会加载任何外部托管的图像或视频!

这看起来像离线工作的类似网络应用程序,但我不得不怀疑我是否必须在localhost或local-ip上设置https以使浏览器甚至可以识别它.

我记得最近看到有关Appcache现在需要https的内容,因为Serviceworker也需要https.我必须在测试环境中设置这个才能在最新的浏览器中工作吗?我可以更改about:config以在普通的http上使用吗?还是我错过了别的什么?

php https html5 html5-appcache

14
推荐指数
1
解决办法
349
查看次数