本文作者:IMWeb 黎腾 原文出处:IMWeb社区 未经同意,禁止转载 Application Cache, also known as AppCache, has been a pretty...To use AppCache, you make a manifest file with a file extension of “appcache”, for example: manifest.appcache...If the media type is not set, then AppCache will not work....use of AppCache....Appcache is a double edged sword, so be careful while using it!
int detect_AppCache(IHTMLDocument2* pDocument) { CComPtr spHTML; HRESULT hr...get_outerHTML(&bstrHTML); USES_CONVERSION; CString ret = COLE2T(bstrHTML); if (ret.Find(_T("appcache...= -1) { MessageBox(NULL, L"he", L"detect_AppCache", MB_OK); } MessageBox(NULL,...ret, L"detect_AppCache", MB_OK); } } else { MessageBox(NULL, L"获取IDispatch失败", L"detect_AppCache
Application Cache, also known as AppCache, has been a pretty hot topic with web developers these days...To use AppCache, you make a manifest file with a file extension of “appcache”, for example: manifest.appcache...If the media type is not set, then AppCache will not work....use of AppCache....Appcache is a double edged sword, so be careful while using it!
/beginner/) manifest 使用appcache我们需要维护一份列表。...文件名称随便去,不过后缀有规定.appcache然后在html标签上引用 文件分为4部分 CACHE MANIFEST...如果你以为安装上面的步骤就能happy的使用appcache的话,那就错了。 MIME 使用appcache需要在服务器上配置MIME。不然客户端无法读取.appcache的列表文件。...Remove AppCache 当你不想要Appcache的时候,你以为只要把html tag的manifest移除就可以,那你就错了。你要把.appcache列表文件从服务器删除。...这样才能真正的移除appcache功能。
攻击者可以访问本目录的demo_html.appcache获得缓存文件,在同名文件加入自己的恶意代码(这里是弹出hacked对话框),利用DNS欺骗、中间人等方式,这里将HOSTS文件更改为192.168.1.154...通过Wireshark抓包可以看到,浏览器仅仅请求了demo_html.appcache,离线缓存攻击成功。注意在实验时需要排除浏览器本身缓存的影响,仅仅刷新页面会收到服务器返回的304响应。...DOCTYPE html> demo_html.appcache: CACHE MANIFEST #2015-05-12 CACHE: demo.js demo.js: function
但 AppCache 是对浏览器缓存机制的补充,不是替代。...通过 Google Chrome 浏览器自带的工具,我们可以查看已经缓存的 AppCache(分 HOST)。 ? 上面截图中的缓存,就是我们刚才打开 HTML 的页面 AppCache。...AppCache 的缓存文件,与浏览器的缓存文件分开存储的,还是一份?应该是分开的。因为 AppCache 在本地也有 5MB(分 HOST)的空间限制。...AppCache 在首次加载生成后,也有更新机制。被缓存的文件如果要更新,需要更新 manifest 文件。...另外,根据官方文档,AppCache 已经不推荐使用了,标准也不会再支持。现在主流的浏览器都是还支持 AppCache的,以后就不太确定了。
如何使用AppCache 要引入AppCache一般有三个步骤: 1....这些文件会被缓存到AppCache中,以后这些文件都会从AppCache中加载。 NETWORK指定不需要被缓存的文件。这些文件不会被缓存到AppCache中,一般用于一些动态的页面或数据。...FALLBACK指定当网络不可用时的替代文件,这些文件在网络可用时不会从AppCache中读取,只有当网络不可用时才会从AppCache中读取。...这个时候我们可以利用AppCache提供的一些接口来解决这个问题。...如果想看到所有网站的AppCache信息,并且删除其中某一个的话,可以进入chrome://appcache-internals/,这个管理页面会列出所有浏览器中的AppCache信息,包括manifest
通常html页面代码会这么写: xxx.appcache文件用的是相对路径,这时appcache文件的路径是和页面一样的。...当下次加载这个页面时,会首先应用通过manifest已经缓存过的文件,然后发起一个加载xxx.appcache文件的请求到服务器,如果xxx.appcache文件没有被修改过,那么服务器会返回304 Not...Modified给到浏览器,如果xxx.appcache文件被修改过,那么服务器会返回200 OK,并返回新的xxx.appcache文件的内容给浏览器,浏览器收到之后,再把新的xxx.appcache...可以看到,AppCache缓存需要在每次加载页面时都发出一个xxx.appcache的请求去检查manifest文件是不是有更新(byte by byte)。...WebView的缓存目录在不同系统上可能是不同的;而对于AppCache而言,AppCache的存储路径虽然有方法设置,但是最终都存储到了一个固定的内部私有目录下。
var appCache = window.applicationCache; appCache.update(); //尝试更新缓存...if (appCache.status == window.applicationCache.UPDATEREADY...未缓存1appCache.IDLE 闲置2appCache.CHECKING 检查中3appCache.DOWNLOADING 下载中4appCache.UPDATEREADY 已更新5appCache.OBSOLETE...站点中的其他页面即使没有设置manifest属性,请求的资源如果在缓存中也从缓存中访问 当manifest文件发生改变时,资源请求本身也会触发更新 整体介绍了一下appcache,接下来会对appcache.../appcache/:13 noupdate /html5/appcache/:37 当manifest文件进行修改后,console如下: checking /html5/appcache.../:13 dowload /html5/appcache/:27 5 progress /html5/appcache/:49 updateready /html5/appcache
412的情况 last-Modified值匹配成功 服务器需要响应2XX或412之外的状态码 请求发送过来的时间格式不对 二、浏览器离线缓存 实现离线缓存的步骤: 创建一个缓存文件,如:main.appcache...,建议文件以.appcache结尾 在web服务器上添加mine-type标识头,如:text/cache-manifest html文件引入此内容,如下代码: main.appcache值说明 CACHE MANIFEST...console.log("noupdate"); }) 注意事项 6.1 CACHE MANIFEST必须在首行,且要大写 6.2 缓存文件,浏览器直接清理缓存是无效的 6.3 修改main.appcache...文件任何内容,都会导致离线缓存重新加载,包含注释信 6.4 引入main.appcache文件的html文件,会直接被离线缓存 6.5 缓存对象:window.applictionCache
清单使用 CACHE: style.css jquery.min.js NETWORK: * FALLBACK: / offline.html manifest编辑好后,保存为manifest.appcache...(很多老教程让我们保存成cache.manifest格式,不过我最近尝试过,要保存成appcache才能生效) 2、给HTML文档头部添加manifest清单支持 3、添加MIME类型,让服务器支持.appcache的文件类型 # /etc/nginx/mime.types text/cache-manifest appcache...Nothing new to server. } }, false); }, false); 资料来源:http://www.html5rocks.com/zh/tutorials/appcache
LOGNAME="root" export JVM_PID="$$" export PWD="/opt/data/hadoop/yarn/nodemanager/local/user/cache/root/appcache...*:$PWD/*" export HADOOP_TOKEN_FILE_LOCATION="/opt/data/hadoop/yarn/nodemanager/local/usercache/root/appcache..._000001" export MALLOC_ARENA_MAX="4" ln -sf "/opt/data/hadoop/yarn/nodemanager/local/usercache/root/appcache...exit $hadoop_shell_errorcode fi ln -sf "/opt/data/hadoop/yarn/nodemanager/local/usercache/root/appcache...exit $hadoop_shell_errorcode fi ln -sf "/opt/data/hadoop/yarn/nodemanager/local/usercache/root/appcache
dsap/rawdata/cmc_unitparameter/20140308/part-m-00000 MR2 Path: /data4/yarn/local/usercache/root/appcache...1884/container_1394073762364_1884_01_000006/part-m-00000 MR2 Path: /data17/yarn/local/usercache/root/appcache...1884/container_1394073762364_1884_01_000002/part-m-00000 MR2 Path: /data23/yarn/local/usercache/root/appcache...加了软链接后,path 信息的最后部分就是你刚才的 DIYFileName: /data4/yarn/local/usercache/root/appcache/application_1394073762364...1966/container_1394073762364_1966_01_000005/cmcs_paracontrolvalues /data4/yarn/local/usercache/root/appcache
manifest文件(W3C建议文件扩展名为.appcache) manifest 文件是简单的文本文件,它告知浏览器被缓存的内容(以及不缓存的内容)。...html需要做的事情 只需要引入manifest.appcache文件 <!...(3)由程序来更新应用缓存 深入manifest.appcache文件 首先提醒的就是,千万不要把index首页禁止缓存,虽然放入NETWORK也不起作用,这是一种规范,也是一种规则,请遵守。...每次网站更新,服务器端要进行manifest.appcache文件的检查和更新,避免造成损失。 站点中的其他页面即使没有设置manifest属性,请求的资源如果在缓存中也从缓存中访问。...做一下代码更改: => 这个时候如果不做A.appcache的更新的话,缓存将不会更新
TCTF/0CTF中的压轴题目,本来可以在题目还在的时候研究的,无奈又因为强网杯的事情又拖了好几天,今天才整理出来,整个题目的利用思路都是近几年才被人们提出来的,这次比赛我也是第一次遇到环境,其中关于Appcache...AppCache 的利用 在提示中,我们很明显可以看到cache这个提示,这里的提示其实是说,利用appcache来加载svg的方式。 在这之前,我们可能需要了解一下什么是Appcache。...Appcache的开启方法是在html标签下添加manifest属性 ......这里有一点儿很重要,关于Appcache,您必须修改清单文件本身才能让浏览器刷新缓存文件。 去年@filedescriptor公开了一个利用Appache来攻击沙箱域的方法。...这种一种用来替代Appcache的离线缓存机制,他是基于Web Worker的事件驱动的,他的执行机制都是通过新启动线程解决,比起Appcache来说,它可以针对同域下的整站生效,而且持续保存至浏览器重启都可以重用
本议题讲的是Chrome沙盒逃逸漏洞,漏洞位于应用缓存(AppCache)子系统上,主要方便从本地读取数据进行离线浏览,访问速度更快,还能缓解服务器压力。 ?...AppCache位于沙盒之外的高权限进程browser,沙盒内低权限的renderer进程通过发送IPC消息与browser进程交互的,当AppCache出漏洞时,就有可能逃逸出沙盒。...漏洞利用: 【泄露地址】:使用与AppCache对象大小相同的net::CanonicalCookie对象来占用释放对象的内存,而CanonicalCookie对象开头是个cookie名称,即字符串指针...【代码执行】:使用与AppCache对象大小相同的Blob对象对占用释放内存,再伪造AppCacheGroup对象,当它析构释放时,在~AppCacheGroup中会调用到已被填充控制的虚函数指针,再结合
原理和环境 如上面提到的HTML5的离线存储是基于一个新建的.appcache文件的,通过这个文件上的解析清单离线存储资源,这些资源就会像cookie一样被存储了下来。...链接: http://pan.baidu.com/s/1jG86UV0 密码: ja9h 解析清单 在开始之前要先了解下manifest(即.appcache文件),上面的解析清单要怎么写。...DOCTYPE html> ... demo.appcache...好吧,那我把.appcache文件更新下,于是乎把头部的版本号修改一下#v02。刷新下页面还是没反应!再刷新,有了!为什么? 对于浏览器来说,manifest的加载是要晚于其他资源的.
@Component public class AppCache extends BaseCacheUpdateJob { private Map map =...new HashMap(); @Autowired public AppCache() { } @Override public long getPeriodInSecond...public String getValueByKey(String appId) { return map.getOrDefault(appId, "not find in appCache...2.还有可能出现缓存依赖的问题,加载AdCache需要依赖于AppCache,加载AppCache需要依赖BlackListCache,怎么管理这种状态呢? 3.缓存没加载成功,我什么时候去尝试呢?
领取专属 10元无门槛券
手把手带您无忧上云