php - 是否有设置过多请求的设置?
问题描述
我正在用 PHP 编程,我想知道是否有办法设置太多请求,还是需要手动编码?例如,如果某人在 60 秒内打开了 30 个页面,则请求太多(并且他们可能是机器人),因此他们收到了太多请求 HTTP 状态代码。
如果应该手动完成,那么设置这样的东西的最佳做法是什么?
解决方案
您可以尝试使用Apache 的ratelimit。
这是 Apache 提供的示例。特定 IP 的速率限制为 400kb/秒。
<Location "/downloads">
SetOutputFilter RATE_LIMIT
SetEnv rate-limit 400
</Location>
更具体地说,您可以尝试使用Mod Evasive 之类的模块来防止多个请求访问服务器。您可以使用CloudFlare 之类的产品来缓解 DDOS 攻击。
如果您真的想为此使用 PHP,您可以记录来自给定 IP 的请求数量,如果来自该 IP 的请求大于某个值,您可以阻止该 IP 访问您的页面。
为此,您可以将 IP 地址与指示他们何时访问您的页面的日期列一起存储在数据库中,并使用 SQL 计算他们在特定时期内的访问聚合。
推荐阅读
- arrays - 从数组输入焦点
- internet-explorer - 如果使用 Internet Explorer,则不使用 Vue.js 导入模块
- java - 如何使用带有 Java 或 AWSKmsClient 的 AWS 加密 SDK 解密 AWS KMS 密码
- c++ - C++:对于需要特定平台实现的单例类,我可以遵循什么模式?
- c++ - Qt 中如何处理子类中的动态内存分配?
- arrays - 在 SAS 宏中使用临时数组
- php - 仅当值为空时如何更新,否则在下一行更新
- redux - Redux FieldArray 组件不会填充 - 出现错误:b.equals 不是函数
- sas - 如何使用sas标签
- c# - 如何在派生类的方法中转换不同的类型?