我有一个基于数据库安全性的快速问题。
我希望制作一个需要登录详细信息的页面,一旦授予访问权限,用户就可以更改姓名,地址,电话号码等内容。
只要用户名和密码是安全的,以下页面中的信息就是安全的吗?
我无需像加密那些信息那样做,因为它位于作为登录区域的墙后面。或者,人们可以通过其他方式访问我需要考虑的数据库吗?
也有人能指出我做加密的好方法。我看过使用md5。这是加密密码和敏感信息的最佳/最简单方法。
由于
答案 0 :(得分:0)
问:" 只要用户名和密码是安全的,以下页面中的信息就是安全的吗?
和
问:" 也有人能指出我做加密的好方法。我看过使用md5。这是加密密码和敏感信息的最佳/最简单方法。"
至于如何正确地做到这一点,两个最好的来源是:
我偏爱托马斯·波尔宁的描述,因为他是一位真正的密码学家,比任何人都更了解这些问题。他在StackOverflow上有很多关于此的帖子:你可以谷歌为它(我不能发布2个以上的链接,因为我是这里的新成员)。另请注意,Pornin指出了每个人在这个主题上滥用的术语("加密","密钥派生函数"等等......)。
拜托,请不要错误地使用MD5!
问:"或者,人们可以通过其他方式访问我需要考虑的数据库吗?"
答:关于这个主题的优秀书籍是数据库中的密码学:最后一道防线。想一想:你的备份存储在哪里 - 它们的安全性如何?系统和数据库管理员是否始终可信?如果系统中存在某种类型的漏洞(例如SQL注入或远程文件包含),攻击者可以获取内部信息,会发生什么?物理数据被盗的威胁怎么样?开发人员怎么样 - 他们可以访问数据库吗?
所以,这不是一个简单的问题,需要大量的研究才能真正理解这些问题。您的公司应该有一个安全架构师来帮助分析您的系统并为其开发正确的解决方案。
答案 1 :(得分:0)
如果您编写类似select <columns> from <table> where <key columns> = <verified name>
的内容,那么在最简单的级别上,则只显示与登录匹配的值。但是,Bad People会寻找通过绕过您的应用程序来获取数据的方法,而不是使用它,包括窃取DB server itself。您需要了解您面临的各种风险,并根据您愿意采取的措施来解决每个风险,以及您愿意接受的风险。