[Java] [SQL]查询时使用硬编码的用户名和密码
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了[Java] [SQL]查询时使用硬编码的用户名和密码,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1651字,纯文字阅读大概需要3分钟。
内容图文
我的Java代码有问题.我的大学老师要求我使用“ kiuwan”作为在线代码评估者,他在我的代码中发现了以下问题:
Hardcoded credentials (username / password) are visible to any person reading the source code.
If the resource protected by such hardcoded credentials is important, this may compromise system security.
With hardcoded credentials, change is difficult. If the target account is compromised, and the software
is deployed in production, a code change is needed, which forces a redeployment.
Please note that source code access is not always necessary: if an attacker has access to the JAR file,
he/she may dis-assembly it to recover the password in clear.
它在我的3个查询中发现了这个问题:
public static final String CHECK_USER = "SELECT nome FROM utenti WHERE nome=? AND password=?";
public static final String INSERT_USER = "INSERT INTO utenti (nome, password) VALUES (?, ?)";
public static final String CHECK_USER_NAME = "SELECT nome FROM utenti WHERE nome=?";
我该如何解决?我以这种方式创建它们(从文本字段中获取信息)进行登录并检查数据库.
谢谢大家!
解决方法:
我认为您的老师没有在谈论那些疑问.我认为他/她正在谈论您的代码如何创建其数据库连接.他/她发现您已将数据库帐户的用户名和密码硬连线到Java代码中.
一个简单的解决方案是从配置文件中读取数据库帐户详细信息……尽管现在您存在确保配置文件安全的问题.
(为什么会这样呢?因为您从老师那里引用的文字是关于从源代码或JAR文件中读取密码,而不是从数据库中读取密码.)
作为记录,将密码存储在数据库中也是一个坏主意.但这不是您的老师在谈论的.
避免将密码存储在数据库中的技术更加困难.一个典型的解决方案是为密码创建种子式哈希哈希,并将其存储在数据库中.但这意味着您无法恢复原始密码.如果您需要这样做,那么从安全角度来看,事情变得更加“漫长”.
内容总结
以上是互联网集市为您收集整理的[Java] [SQL]查询时使用硬编码的用户名和密码全部内容,希望文章能够帮你解决[Java] [SQL]查询时使用硬编码的用户名和密码所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。