Heim  >  Fragen und Antworten  >  Hauptteil

Wie lösche ich den Browser-Cache programmgesteuert?

<p>Ich suche nach einer Möglichkeit, den Browser-Cache programmgesteuert zu leeren. Ich mache das, weil die App vertrauliche Daten zwischenspeichert und ich diese löschen möchte, wenn Sie auf „Abmelden“ klicken. Dies kann über den Server oder JavaScript erfolgen. Natürlich wird von der Verwendung dieser Software auf ausländischen/öffentlichen Computern immer noch abgeraten, da es weitere Gefahren wie Keylogger gibt, die Sie auf Softwareebene einfach nicht besiegen können. </p>
P粉419164700P粉419164700445 Tage vor656

Antworte allen(2)Ich werde antworten

  • P粉990568283

    P粉9905682832023-08-02 11:31:57

    浏览器不可能让你清除它的缓存。如果可能的话,这将是一个巨大的安全问题。这很容易被滥用——一旦浏览器支持这种“功能”,我就会把它从我的电脑上卸载。

    你能做的就是告诉它不要缓存你的页面,通过发送适当的标题或使用这些元标签:

    <meta http-equiv='cache-control' content='no-cache'>
    <meta http-equiv='expires' content='0'>
    <meta http-equiv='pragma' content='no-cache'>

    您可能还想考虑关闭表单字段上的自动完成,尽管恐怕有一种标准方法可以做到这一点(参见这个问题)。

    无论如何,我想指出的是,如果您正在处理敏感数据,则应该使用SSL。如果您不使用SSL,任何可以访问网络的人都可以嗅探网络流量,并很容易地看到您的用户看到的内容。

    使用SSL还使一些浏览器不使用缓存,除非明确告知。看看这个问题。

    Antwort
    0
  • P粉680487967

    P粉6804879672023-08-02 09:30:01

    这是可能的,你可以简单地使用jQuery替换引用缓存状态的“meta标签”与事件处理程序/按钮,然后刷新,很容易。

    $('.button').click(function() {
        $.ajax({
            url: "",
            context: document.body,
            success: function(s,x){
    
                $('html[manifest=saveappoffline.appcache]').attr('content', '');
                    $(this).html(s);
            }
        }); 
    });

    注意:此解决方案依赖于作为HTML 5规范的一部分实现的应用程序缓存,它还需要服务器配置来设置应用程序缓存清单。它没有描述一种通过客户端或服务器端代码清除“传统”浏览器缓存的方法,这几乎是不可能做到的。

    Antwort
    0
  • StornierenAntwort