验证是不好的做法?以及如何保护免受暴力攻击者的攻击

时间:2016-06-29 07:14:47

标签: php security

我想得到关于以下内容的建议:

我在PHP上制作MVC框架。我需要保护免受暴力攻击者的攻击。所以为了安全起见,我需要一些像#34;身份验证所需的#34;需要用户输入一些密钥的框,可以继续使用网络应用程序。

如果使用相同的IP地址发送2-3次,则IP被阻止,持续约30分钟。这没关系,但我读到的可能是黑客每2-3次更换一次IP。

现在我想把验证码放在表格上,为了更好的安全性,但我读了验证码是个坏主意。

所以现在我真的不知道如何保护网络应用免受暴力攻击。

所以我的问题是MOST如何防止暴力攻击?验证码是一个好主意,是将其置于身份验证形式还是糟糕的想法中?

1 个答案:

答案 0 :(得分:1)

一个好的做法是为您的表单提供CSRF保护。大多数populars框架都具有内置于其表单类的功能。 这一切都以表单中的隐藏输入结束,每个页面加载时刷新该值,并在后端服务提交的表单上进行检查。

PhalconPHP框架生成的CSRF令牌示例:

<input type="hidden" name="OlHsF0T091MhuDR" value="d7xvFcHKUh8FjWU">

有关CSRF保护的更多信息,请访问:https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet

此外,我非常确定您会在网上找到大量有关如何在自定义框架中实施自己的解决方案的指南。

现在关于Captchas。

在注册或联系表格上,Captchas总是一个好主意。但是在使用Captcha的登录表单上对大多数用户来说都会令人沮丧。 我在银行或支付网站上看到过的一个好习惯是,在几次尝试失败后,他们会在登录时显示Captcha。 Skrill使用此练习的示例:https://account.skrill.com/login?locale=en

我建议您使用Google's Recaptcha服务,因为它对您的真实用户来说非常容易,而且最重要的是它为残疾用户提供了辅助功能。谷歌也提供了很好的统计数据,并且很好地处理了机器人。