防止使用PHP CURL的远程脚本登录到网站
有哪些方法可以用来防止远程PHP脚本使用CURL登录登录页面?检查推荐人和用户代理将不起作用,因为可以使用CURL设置它们。理想的解决方案是在不使用验证码的情况下解决这个问题,这就是问题的重点,试图找出这是否可行。没有任何方法可以简单地阻止它。如果脚本知道用户名和密码,他们将能够登录 您可以使用验证码,这样自动登录就无法读取验证码,但这也会给实际用户带来负担 如果您担心它被用于尝试和强制登录,那么在多次尝试之后,您可能需要一些额外的信息防止使用PHP CURL的远程脚本登录到网站,php,security,curl,login,Php,Security,Curl,Login,有哪些方法可以用来防止远程PHP脚本使用CURL登录登录页面?检查推荐人和用户代理将不起作用,因为可以使用CURL设置它们。理想的解决方案是在不使用验证码的情况下解决这个问题,这就是问题的重点,试图找出这是否可行。没有任何方法可以简单地阻止它。如果脚本知道用户名和密码,他们将能够登录 您可以使用验证码,这样自动登录就无法读取验证码,但这也会给实际用户带来负担 如果您担心它被用于尝试和强制登录,那么在多次尝试之后,您可能需要一些额外的信息 禁用帐户并要求通过电子邮件重新激活 多次尝试失败后需要验
- 禁用帐户并要求通过电子邮件重新激活
- 多次尝试失败后需要验证码
- 您拥有执行登录脚本的登录页面
- 登录脚本被远程cURL脚本攻击
关于主题的更多信息:一种方法是在您的登录表单中包含一些JavaScript,并使其在JavaScript运行之前无法成功提交表单。这使得您的登录表单仅可用于启用JavaScript的用户,而CURL没有启用JavaScript。如果必要的JavaScript是某种每次都不同的质询/响应(例如,使用类似于使其不平凡的东西),那么表单中正确设置的值的存在就是JavaScript运行的良好证据
但是,您无法停止所有自动脚本,编写驱动实际浏览器引擎的脚本非常容易,而且它们将通过此测试。cURL与任何其他客户端(例如浏览器)没有什么不同。您可以在隐藏的输入字段中使用绑定到会话的nonce来防止直接发出POST请求,但仍然有办法解决这个问题。如果您担心的是暴力攻击,那么限制每分钟的登录尝试次数也是一个好主意。为什么要禁止cURL访问?如果有那么大的一笔交易,加上reCAPTCHA。回答得好。您还可以在登录页面上使用JavaScript,并使用一些令牌等来验证这一点,但最终您无法阻止cURL,因为它与web浏览器一样工作。请注意,要求JavaScript使用您的站点通常是一种罪恶。我们可以用页面中包含JavaScript的curl来废弃该站点吗?如何绕过它?您将无法使用会话阻止cURL。它只需要一个稍微复杂一点的脚本来接受和发送cookie。