【发布时间】:2012-04-10 05:02:18
【问题描述】:
在安全方面我是个新手,我一直在阅读 php crypt 并寻找好的建议,尽管没有人真正详细说明“如何”以最有效的方式进行操作方式。
我做了一个测试登录,它使用这样的东西:
//verify login from user input
$username = mysql_real_escape_string($_POST['username']);
$salt = '$2a$10$cdDegHjJLPUvVXYz23679.MOetNHBk9NTStpY9YjJWiL5ECfhHlSm';
$password = crypt(mysql_real_escape_string($_POST['password']), $salt);
(我确信我需要更改很多内容以使其完全安全(例如限制密码字符串长度)请告诉我您认为有什么好的做法)
我在某处读到,制作随机盐并将其与密码一起存储是理想的,(我不完全理解检查与密码无关的数字的概念)
然后我在某处读到,随机加盐是没有意义的,因为它不会提高安全性,而静态加盐的作用几乎相同。
我看到tutorial 使用带有 $_GET 的随机盐。 (告诉我这是不对的)
谁能指出我的正确方向,使我的 bcrypt 尽可能有效。
谢谢
【问题讨论】:
-
“告诉我这是不对的”——哪一部分?
-
请不要在任何地方盲目使用
mysql_real_escape_string。它应该只用于转义查询字符串(无论如何都应该避免,使用准备好的语句时更安全,并且它们更容易适合初学者)。是的,您应该为每个用户使用随机盐。