我正在使用ajax直接编辑网页,使用简单的html dom编辑php。我没有看到使用数据库的重点。然而,当我想使用序列化在web服务器上存储应用程序的管理员密码时,我的手感到恐惧,即使它高于htdocs,它是加密的,我使用的是反暴力脚本。
我不想仅为一个密码使用数据库但是它足够安全吗?
我期待你的想法......
答案 0 :(得分:3)
具有正确chmod权限的文件与此实例中的数据库存储一样安全。
想一想:mysql数据库实际上存储在服务器文件系统的二进制文件中。如果恶意用户获得对服务器的访问权限,则他们对二进制数据库文件的访问权限与任何其他文件相同,包括文本文件中的序列化和加密数据。
只要此文本文件不在可通过Web服务器公开访问的目录中,它就不会那么安全了。当然,如果有人获得root访问权限,那么无论如何都会让你感到满意。
从不所做的是存储明文密码。 md5()
(只是)没关系。 sha1()
现已成为加密此类数据的更好选择。
答案 1 :(得分:2)
数据库不会让您的密码比文件系统更安全,因为如果您的服务器被黑客入侵,您的数据库密码也会被黑客入侵,这意味着无论如何都会显示管理员密码
答案 2 :(得分:1)
如果此登录信息仅适用于您,则可以更轻松地将密码存储在代码/文件中。但是您必须加密密码以防止hackerkiddies读取此文件并登录。请不要忘记文件上的正确chmods;)
答案 3 :(得分:1)
只要你没有在文件中存储纯文本密码,我就不会在实际的php文件中看到密码哈希问题。
使用SHA1的示例:
if(sha1($_POST['password']) == "8cb2237d0679ca88db6464eac60da96345513964") {
//success
} else {
//failure
}
答案 4 :(得分:0)
你应该存储你的" Hash"安全的地方(你用它生成密码的密钥)。如果有人可以访问" hash / key"那么你在哪里存储密码并不重要,他们可以获得你的密码。关于数据库的好处是,它最有可能更容易遍历您的目录结构并查找文件,而不是连接到您的数据库,发现您的表结构,然后发现存储在字段中的值在数据库..