This question already has an answer here: The definitive guide to form-based website authentication [closed] 12 answers you should use md5() on your password value and not the mysql_real_escape_string() return value. so first correct this: passad = mysql_real_escape_string(md5($_POST["password"])); 由于你的passad变量被散列,我想你必须比较这样的散列变量if(md5("passadmin") == $passad)
这个问题在这里已经有了答案: 基于表单的网站身份验证的权威性指南[已关闭] 12个答案 你应该在你的密码值上使用md5()而不是mysql_real_escape_string()的返回值。 所以首先纠正这一点: passad = mysql_real_escape_string(md5($_POST["password"])); 由于你的passad变量被散列,我想你必须比较这样的散列变量if(md5("passadmin") == $passad)
This question already has an answer here: The definitive guide to form-based website authentication [closed] 12 answers MD5 is not the way nowadays to encrypt password. You have to look on couple functions, wich are added in PHP. This functions are password_hash and password_verify. Authentication is pretty simple. You need to make just three classes: class of registration, class of auth
这个问题在这里已经有了答案: 基于表单的网站身份验证的权威性指南[已关闭] 12个答案 MD5不是现在加密密码的方式。 你必须看看几个函数,这些函数都是在PHP中添加的。 这个函数是password_hash和password_verify。 身份验证非常简单。 您只需要制作三类:注册类别,授权类别和验证类别。 在注册时,您的主要目标是创建一个新用户:从注册表中获取信息,检查并加密密码,将信息存储在数据库中。 在authorizaton你应
This question already has an answer here: The definitive guide to form-based website authentication [closed] 12 answers How can I prevent SQL injection in PHP? 28 answers what happens if i enter a username root and put the password like this ' or 'x'=='x you sql statement will be SELECT count(id) FROM login WHERE user='root' and pass='' or 'x'=='x'
这个问题在这里已经有了答案: 基于表单的网站身份验证的权威性指南[已关闭] 12个答案 我如何防止PHP中的SQL注入? 28个答案 如果我输入用户名root并将密码设置为这样会发生什么情况 ' or 'x'=='x 你的sql语句会 SELECT count(id) FROM login WHERE user='root' and pass='' or 'x'=='x'
This question already has an answer here: The definitive guide to form-based website authentication [closed] 12 answers 我认为它应该工作$usernamename = $_GET['usernamename']; $code = $_GET['code']; $email = $_GET['email']; $res = mysql_query("SELECT * FROM `table` WHERE `usernamename` = '$usernamename' AND `code` = '$code' AND `email` = '$email' LIMIT 1 ") or die(mysql_error()); if($row = m
这个问题在这里已经有了答案: 基于表单的网站身份验证的权威性指南[已关闭] 12个答案 我认为它应该工作$usernamename = $_GET['usernamename']; $code = $_GET['code']; $email = $_GET['email']; $res = mysql_query("SELECT * FROM `table` WHERE `usernamename` = '$usernamename' AND `code` = '$code' AND `email` = '$email' LIMIT 1 ") or die(mysql_error()); if($row = mysql_fetch_assoc($res)) { header("l
This question already has an answer here: The definitive guide to form-based website authentication [closed] 12 answers As you've noticed, you need to store your passwords securely. If you don't you could be embarrassed the same way Adobe Systems recently was. There are two steps to this: First, when a user creates or updates the password, encode it and store the encoded value.
这个问题在这里已经有了答案: 基于表单的网站身份验证的权威性指南[已关闭] 12个答案 正如您已经注意到的那样,您需要安全地存储密码。 如果你不这样做,你可能会像Adobe Systems最近一样感到尴尬。 有两个步骤: 首先,当用户创建或更新密码时,对其进行编码并存储编码值。 其次,当用户尝试登录时,对密码进行编码并将其与存储的编码值进行比较。 只有在编码值匹配的情况下,您才允许用户访问。 一个很好的方法
This question already has an answer here: The definitive guide to form-based website authentication [closed] 12 answers PHP now has built-in password_hash and password_verify functions that use the industry-standard bcrypt algorithm. Use them - they manage the salt for you. If you're stuck on PHP 5.4 or lower, there's a backport: https://github.com/ircmaxell/password_compat As yo
这个问题在这里已经有了答案: 基于表单的网站身份验证的权威性指南[已关闭] 12个答案 现在PHP已经内置了使用行业标准bcrypt算法的password_hash和password_verify函数。 使用它们 - 他们为你管理盐。 如果你停留在PHP 5.4或更低版本,那么有一个backport:https://github.com/ircmaxell/password_compat 正如你所说,盐的重点不是一个额外的秘密。 密码是秘密。 密码需要很强。 如果密码不够强烈,则无论哈希如何,
Working on a php login script and want to avoid Captcha, and challenge questions. I was thinking about implementing a ID#, ID and password login prompt. All users already have a state license number assigned to them and I was thinking about using those numbers for a two-factor authentication. If they enter a license number and login ID that didn't match, they get a fake salt and automatic
处理php登录脚本,并希望避免Captcha,并质疑问题。 我正在考虑实施ID#,ID和密码登录提示。 所有用户已经有了一个分配给他们的状态许可证号码,我正在考虑将这些号码用于双因素身份验证。 如果他们输入的许可证号码和登录ID不符,他们将收到假盐,并自动拒绝密码检查。 对ID和密码的所有蛮力尝试都会失败,但机器人不知道为什么。 在得到真正的盐之前,机器人必须将真实的ID#与真实ID相匹配,并有机会攻击密码。 我看
I'm currently hardening the security layer of my web appliocation, and I have some questions about the implementation of a login brute force protection : What storage should I use to store the counter of failed login per user / IP ? Should a simple APC/Memcache entry be enough, or would it require a more stable and persistant storage method, also implying an extra SQL query or file write o
我目前正在强化我的web应用程序的安全层,并且对于登录蛮力保护的实施有一些疑问: 我应该使用什么存储来存储每个用户/ IP失败登录的计数器? 如果一个简单的APC / Memcache条目足够了,还是需要一个更稳定和持久的存储方法,也意味着在每次登录时都会写入额外的SQL查询或文件? 或者甚至将它们存储在会话条目中(我的会话由Memcache处理,所以它们完全相同)。 关于全系统计数器的相同问题(为了触发登录锁定或限制分布式
是否有一个catchall函数可以很好地处理SQL注入和XSS攻击的用户输入,同时还允许某些类型的html标记? It's a common misconception that user input can be filtered. PHP even has a (now deprecated) "feature", called magic-quotes, that builds on this idea. It's nonsense. Forget about filtering (Or cleaning, or whatever people call it). What you should do, to avoid problems, is quite s
是否有一个catchall函数可以很好地处理SQL注入和XSS攻击的用户输入,同时还允许某些类型的html标记? 用户输入可以被过滤是一个常见的误解。 PHP甚至有一个(现在被弃用的)“功能”,称为魔术引号,建立在这个想法上。 这是无稽之谈。 忘记过滤(或清洁,或任何人称之为)。 为了避免问题,你应该做什么很简单:当你在外部代码中嵌入一个字符串时,你必须根据该语言的规则来逃避它。 例如,如果您在某些针对MySql的SQL中嵌
It is currently said that MD5 is partially unsafe. Taking this into consideration, I'd like to know which mechanism to use for password protection. This question, Is “double hashing” a password less secure than just hashing it once? suggests that hashing multiple times may be a good idea, whereas How to implement password protection for individual files? suggests using salt. I'm us
目前说MD5是部分不安全的。 考虑到这一点,我想知道使用哪种机制来保护密码。 这个问题,“双重散列”密码不仅仅是一次散列吗? 建议多次散列可能是一个好主意,而如何实现单个文件的密码保护? 建议使用盐。 我使用PHP。 我想要一个安全快速的密码加密系统。 散列密码一百万次可能更安全,但速度也更慢。 如何在速度和安全之间取得良好的平衡? 此外,我更喜欢结果有一个恒定数量的字符。 哈希机制必须在PHP中可用