PHP / MySQL安全登录和会话

我有一个登录服务到我当前的网站,我想知道的是 – 有什么特别的方法你可以称之为MOST安全吗?

请允许我更好地解释一下我的系统:

我目前有一个带有用户表的PHP MysqL数据库.用户名和密码都存储为VARCHAR(对我所知的密码不是最好的).

注册表单方面,我通过仅允许a-Z 0-9条目并限制字符数来规范密码和用户名的选择.在登录表单方面,我使用MysqL_real_escape_string停止攻击,我使用POST到iFrame而不是AJAX.

我觉得我正在尽我所能阻止表单方面的攻击,但不是来自数据库方面.我知道你可以改变密码存储的类型,以便在进入数据库时​​加密,但我不明白的是我将如何查询这个加密的字符串.

鉴于我所描述的,你会在增加安全性方面提出什么建议?为什么?您选择哪种方法来防止黑客攻击和攻击?你能在我所描述的内容中看到任何明显的安全漏洞吗?也许最重要的是,我可以做些什么来纠正这些,因为我没有长时间参与网络开发游戏并且没有太多经验?

(请记住,我没有创建一个容纳机密或煽动性数据的系统)

最佳答案
首先,不要在数据库中存储纯文本密码.因此,在注册新用户时,请将其密码插入为hash. MD5最常用于此.我建议用这种盐.所以存储:

$password = md5($yoursalt . $_POST['password']);

现在,当用户想要登录时,您的帖子中又有了密码.现在创建与以前相同的哈希,并在数据库搜索此哈希(使用其用户名).这样您就不会存储他们的实际密码.

相关文章

目录MySQL卸载环境查看是否已安装MySQL卸载mysql服务查看是否...
目录数据类型数据类型分类数值类型以TINYINT认识整型族有符号...
目录表的约束空属性非空约束(NOT NULL Constraint)默认值定...
目录函数时间日期函数:字符串函数数学函数其他函数 函数 时间...
目录使用C语言连接库的安装C APImysql_initmysql_real_conne...
目录用户用户管理查询所有用户查看当前用户查看当前连接数创...