正在创建一个表来存储不良编程的一个单行符号吗?

问题描述 投票:0回答:2

我正在研究一个连接到数据库的Java项目,正在考虑一种在数据库中存储“管理员密码”的方法,以授予对Java程序中“管理方法”的访问权限。创建一个表只是为了存储此密码,以便您可以检索它,甚至在程序中正确找到它时也要更改它,这表明编程不好。(例如:插入psw ---->从数据库中检索psw,如果您将其切换到管理员操作列表,则其中之一就是更改此psw)

java mysql sql jdbc
2个回答
1
投票

如果您的问题确实是,“使用数据库(edit:或数据库表)仅容纳一个或几个数据是一种错误的设计实践”,我会说大概不行。数据库是保存数据的地方,并且非常容易扩展。您可能在某个时候需要保存更多的数据,将来可能需要保存更多的数据,而数据库则非常有效。

对单个数据来说是否过分杀伤力?可能吧,但是我怀疑您最终会只将那一块存储在那里。如果只有一个用户(您),则不需要数据库,而是需要安全的凭据或仅您可以访问的应用程序。但是假设这不仅仅适合您,您可能还会发现很多其他有助于存储在那里的东西。

但是,您并未真正提出但应该更感兴趣的问题是,[[可以您是否安全地这样做?答案还有很多不确定性。甚至设计得很好的复杂用户访问系统也存在漏洞。很难解决所有常见的漏洞和设计缺陷。您将如何处理密码加密?蛮力攻击否定?使用数据库的response time中的差异对不同密码进行攻击以磨练密码的攻击?

我不是安全专家,但我足够了解这一点,并将与安全相关的系统留给专门研究它们的人员使用。我建议你这样做。

如果绝对需要进行用户认证的过程,请使用已经存在的系统。绑定到身份验证系统并不难,而且更安全。如果您不是绝对需要的,而这一切只为您或其他用户使用,则可以避免安全问题,并且不要将其开发为通过应用程序登录的公共系统。

编辑:重新阅读您的问题,您已经有一个数据库,但正在询问其中的另一个表。我的回答成立了-这不是一个坏习惯,但是如果您不知道自己在做什么,那么在其中存储密码仍然非常危险。


0
投票
我会拒绝。

[当数据不适合其他关系表并且您无法想象将数据放入另一个表中时,就去做。

您总是可以更改访问数据的结构和程序,如果将来数据库结构必须更改,并且您有机会将数据保存到其他位置,则可以使用>]

© www.soinside.com 2019 - 2024. All rights reserved.