在java中,对一些敏感数据,用啥类型来存储更安全,为啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在java中,对一些敏感数据,用啥类型来存储更安全,为啥?相关的知识,希望对你有一定的参考价值。

参考技术A 系统里的数据类型是根据你的业务以及线程安全性能来选择的,比如金额适合使用bigdecimal类型,方便对金额的管理。对某个字段经常进行修改的使用StringBuffer类型,可以提升线程安全的等级,也可以减少服务器的负担。
关于数据的安全性,泛指系统之间的数据交互,比如我系统A向系统B发送客户的信息需要获取用户的详细资料,这时两边都需要对发送的数据进行加密,比如RSA SM加密等,也可以使用加密的传输协议HTTPS,这样数据不会被第三方查看,从而保持了数据安全性。

将敏感数据存储在本地存储或会话存储中是不是安全? Localstorage 允许对敏感数据进行任何攻击

【中文标题】将敏感数据存储在本地存储或会话存储中是不是安全? Localstorage 允许对敏感数据进行任何攻击【英文标题】:Is it safe to store a sensitive data in Local Stoarge or session storage? Localstorage allows to any attacks for sensitive data将敏感数据存储在本地存储或会话存储中是否安全? Localstorage 允许对敏感数据进行任何攻击 【发布时间】:2017-01-14 22:54:00 【问题描述】:

在 Web 应用程序中,Html5 中的本地存储有多安全,否则有没有其他方法可以保护本地存储中的敏感数据。

项目结构:

前端:Html5,Angular js,中间层: Asp.net webApi,后端:Sql Server。

一旦用户登录到页面,该凭据将使用一些加密算法进行加密。它将存储在数据库中。

之后,每个子操作(如产品列表、订单详细信息、图书历史记录、添加产品)都需要验证。

在页面刷新后,数据会丢失,所以需要持久化数据,所以我选择了本地存储。将使用js算法加密的用户名和密码存储在本地存储中。

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

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

谁能帮我处理一下。

【问题讨论】:

Can local storage ever be considered secure?的可能重复 【参考方案1】:

每个 Webapp Craftsman 都必须知道一些事情:

防火墙之外没有可以完全安全的存储库。为什么?因为每个人都可以访问您需要允许您的应用程序操作数据的敞开大门。

假设您决定加密本地存储的内容。

这将阻止有权访问浏览器本地存储的人(例如开发人员工具)读取/写入数据。但是您的应用程序将如何访问数据?你有两个选择:

    在客户端应用程序中发送加密算法 + 密码。如果有人设法读取您应用的代码并访问浏览器的内存(例如开发者工具),这将暴露您的所有数据 将所有数据从客户端发送到服务器进行解密。嗯……这是没有意义的。最好将数据存储在服务器中。

您可以随心所欲地尝试,您需要一扇敞开的门,而那扇敞开的门可供任何人使用。

但我有一个问题要问您:您真的需要在客户端有一个完全安全的存储库吗?创建这种存储库并不是为了完全安全,但它们足够安全!

例如,您的网络应用程序的会话 cookie 是由浏览器存储的,对吗?如果有人窃取了该 cookie,它可以冒充用户,而您的应用程序永远不会注意到它,对吧?当你想到它时,这非常可怕。

如今,没有人对此进行过多思考,因为浏览器足够安全,可以保护 cookie 免受恶意访问。当然,他们也采取了同样的措施来保护本地本地/会话存储、IndexedDB、WebSQL 等。

因此,如果您的数据比您的用户会话更宝贵,请将其保存在服务器中。如果没有,请继续将其放入浏览器中。

专业提示:在不安全的存储库中存储时考虑加密以使其更难获取。但请记住,这是有代价的:您将无法使用这些存储库的查询系统来搜索加密数据。

【讨论】:

以上是关于在java中,对一些敏感数据,用啥类型来存储更安全,为啥?的主要内容,如果未能解决你的问题,请参考以下文章

Java中存储金额用啥数据类型

java语言中,128位的文件hash值用啥数据类型存储比较好?要求定长。

sql server 货币 字段 类型 一般用啥类型?

java中手机号码用啥数据类型表示?

java存储文件设置时间长短

MYSQL数据表中要存储密码要用啥类型