openid - 如何保护 OpenID 消费者免受滥用?

标签 openid denial-of-service

我正在考虑将 OpenID 作为我的 PHP 应用程序的登录方法,但有一件事阻止我继续:我如何保护 OpenID 使用者免受滥用?

An example of abusing OpenID by using a consumer as proxy

滥用包括用请求淹没其他服务器、使用我的应用程序作为代理、将大量下载作为 URL 传递或通过执行大量请求不必要地减慢服务器的速度。

我想我应该对执行请求实现速率限制,但我该怎么做?可能的攻击者可以使用其他代理或 TOR 来绕过 IP 检查。限制允许的提供者将违反 OpenID 的原则,对吗?

我不希望我的用户是邪恶的,但我想知道在添加另一个可能的攻击向量之前我需要考虑哪些事情。

如果有关系,我将使用 lightopenid作为 PHP 应用程序的后端。

最佳答案

您需要将攻击分成两个池。 1) 攻击您自己的站点,以及 2) 攻击使用您作为代理的其他人。这些问题都不是 OpenID 的新问题或独有问题。例如,经典的“告诉 friend ”电子邮件表单可以自动从代理方的 IP 地址和电子邮件发送垃圾邮件,保护垃圾邮件发送方免受后果并为他们提供(可能)干净的 IP/电子邮件已被垃圾邮件保护标记。这主要是通过“验证码”解决的,以防止自动使用表单。

对于针对您自己网站的攻击,这一切都已被无数次提及。在这里试试:protect your self against DOS attacks

对于针对其他人站点的攻击,许多相同的原则都适用于另一个问题中提到的。限制身份验证请求,拒绝不合理或格式错误的请求,根据 POST 返回的实际内容验证 Content-Length header ,当然您始终可以添加经典的“CAPTCHA”以帮助防止使用 OpenID 使用者的自动攻击。

同样与此处的其他建议相反,我不会基于 OpenID TLD 进行节流,而是基于请求方的 IP 地址进行节流。是的,人们可以租用代理 IP,但您不能根据 TLD 进行合理节流,因为每个 OpenID 提供商的用户群会有很大差异。您还可以从像 MaxMind 这样的公司购买已知代理 IP 的数据库。 .如果用户来自代理 IP,请增加限制的积极性。

关于openid - 如何保护 OpenID 消费者免受滥用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7704247/

相关文章:

.net - 使用 Silverlight 的 OpenId

regex - 如何分析正则表达式中可能存在的漏洞?

Wordpress OpenID 不适用于 StackOverflow

jwt - 在 OpenAM 中添加对 JWT token 的声明?

security - 检测DOS(拒绝服务)攻击的最佳实践?

ASP.NET Web 应用程序防止拒绝服务攻击

安全问题 : excessive Drupal requests from a single user account

testing - 如何测试一个网站,看看它在崩溃前能承受多少惩罚?

python - 带有 Python 3 的 wsgi 中的 openID

python - Django 和 mozilla_django_oidc - 如何注销 session ?