相关疑难解决方法(0)

HTML5 localStorage安全性

将localStorage用于敏感数据(假设当前的HTML5实现)会是一​​个好主意还是坏主意?

我可以使用哪些方法来保护数据,以便在客户端计算机上有权访问的人无法读取数据?

security html5

49
推荐指数
1
解决办法
3万
查看次数

在Local Stoarge或会话存储中存储敏感数据是否安全?Localstorage允许对敏感数据进行任何攻击

在Web应用程序中,Html5中本地存储的安全性如何,或者是否有其他方法可以保护本地存储中的敏感数据.

项目结构:

前端:Html5,Angular js,Middletier: Asp.net webApi,BackEnd:Sql Server.

用户登录页面后,使用一些加密算法对该凭证进行加密.它将存储在db中.

之后,每个子动作如产品列表,订单详情,图书历史记录,添加产品需要验证.

在页面后刷新时,数据会丢失,因此需要保留数据,因此我选择了localstorage.存储使用某些js算法加密的用户名和密码,并放入本地存储器中.

我觉得它不安全,因为任何人都可以从浏览器工具中窃取数据.

在这种情况下是否有任何替代方法,否则这种方法是安全的.

任何人都可以帮助我处理.

javascript security javascript-events angularjs asp.net-web-api2

10
推荐指数
1
解决办法
8015
查看次数

Chrome扩展内容脚本可以访问window.opener吗?

在我的扩展程序中,我正在尝试确定是否将新选项卡创建为另一个选项卡的弹出窗口,如果是,则选择哪个选项卡.

我以为我可以使用内容脚本中的window.opener来帮助解决这个问题.但看起来window.opener在内容脚本中无法正常工作.

当我手动创建选项卡时,它的window.opener按预期为null.

当选项卡被另一个选项卡创建为弹出窗口时,其window.opener未定义.我可以从中推断出选项卡是作为弹出窗口创建的,但我无法用它来确定哪个选项卡创建了新选项卡.

这是一个已知的问题,有没有人知道任何变通方法?

javascript google-chrome google-chrome-extension

8
推荐指数
1
解决办法
7876
查看次数

本地存储中的安全浏览器端缓存

澄清一下问题:下面的提案是否被认为是“安全的”?(即不会引入任何重大的安全风险)。

我还没有看到任何明确的理由为什么以下提议会被认为是完全不安全的(例如,“不要打扰”,这似乎是对任何带有“本地存储”和“安全”字样的快速答案标题)。从根本上说,它基于以下前提:您可以访问内存和缓存中的敏感数据,或者您都不能访问。

起点

我有一个 web 应用程序,其中包括服务器端 web 服务和在浏览器中运行的 javascript,它调用这些 web 服务(安全地,通过 HTTPS,这不是这里的问题)并在网页中显示数据。假设它是一个显示您的电子邮件的电子邮件应用程序 - 即您不想与他人共享的敏感数据。

在此阶段需要注意以下几点:

  • 用户已通过服务器进行身份验证,浏览器中运行的 javascript 能够调用服务器的 Web 服务来检索数据。
  • 在浏览器中运行的 javascript 也可以访问该页面,并且该 javascript 可以使用所有(敏感)信息。敏感数据在“内存中”并且可供 javascript 使用(是的,包括任何恶意注入的 javascript)。

到目前为止,它是一个标准的 web 应用程序,我假设任何阅读的人都会感到舒服,因为它被认为是“可接受的安全”。

添加安全缓存?

问题是:每次用户访问该站点时,他们的浏览器都需要下载所有(电子邮件)信息,其中大部分信息每次都是相同的。如果不是每次都需要向服务器询问所有信息,而是可以在浏览器中缓存数据并检查缓存,那不是很好吗?请记住,这不是“离线”访问:浏览器仍在安全地与服务器通信,但它可能会使用存储在浏览器端缓存中的数据,而不是从服务器检索所有数据。

这是提案:

  • 当浏览器检索数据时,它还会检索一个长的、随机的、服务器生成的密钥。此密钥针对用户安全地存储在服务器上。
  • 在浏览器中,这个键位于 javascript 内存中的敏感数据旁边。
  • 浏览器使用服务器提供的密钥和公认的加密算法(例如 SHA256),对内存中的数据进行加密,然后将其放入本地存储中。
  • 当用户关闭浏览器、离开站点或“退出”时,浏览器不再显示敏感信息,密钥也随之丢失。
  • 这意味着一旦页面消失(或不久之后),浏览器或任何具有任何访问权限级别的人解密缓存内容的能力就消失了。为此,他们需要密钥:如果他们有密钥,他们就已经可以访问数据本身(在浏览器/javascript 内存中)。

  • 当用户稍后返回站点时,他们需要再次向服务器进行身份验证,以便通过 Web 服务检索数据。

  • 同时,javascript 从服务器检索(相同)密钥,它现在可以用来访问本地存储中的缓存。
  • 据推测,可能会有服务器随着时间的推移引入新密钥的过程,以避免无限期地使用相同的密钥。

有什么想法吗?

对于它的价值,请记住我已阅读:

(所以我至少知道围绕 javascript + 本地存储 + 安全性的担忧)

html javascript security caching local-storage

5
推荐指数
1
解决办法
1926
查看次数

如何保护/加密 Blazor WebAssembly 中会话/本地存储中存储的数据

我正在创建 Blazor WebAssembly 应用程序,并试图弄清楚如何加密/保护存储在会话存储/本地存储中的数据?

blazor-client-side blazor-webassembly

5
推荐指数
1
解决办法
5077
查看次数

使用 localstorage 存储同一域下另一个页面的用户电子邮件地址是一个好习惯吗?

我的网站上有一个时事通讯表格,一旦用户输入他们的电子邮件地址,他们将被引导到网站的另一个页面来参加在线竞赛,在那里他们将被要求再次输入他们的电子邮件地址。我想使用javascript为那些已经在上一页输入过的人输入地址。

首先我想到使用 GET 参数,但这样地址会显示在 URL 中,我担心这可能会让一些用户不舒服,这种担心是否合理?

然后我想到使用 localStorage,但是,我以前从未使用过它,它是否可行并且是一个好的做法吗?

html javascript forms get local-storage

3
推荐指数
1
解决办法
6433
查看次数