openspeedtest / Speed-Test

SpeedTest by OpenSpeedTest™ is a Free and Open-Source HTML5 Network Performance Estimation Tool Written in Vanilla Javascript and only uses built-in Web APIs like XMLHttpRequest (XHR), HTML, CSS, JS, & SVG. No Third-Party frameworks or libraries are Required. Started in 2011 and moved to OpenSpeedTest.com dedicated Project/Domain Name in 2013.
https://openspeedtest.com
MIT License
2.28k stars 221 forks source link

Features Request: Limit Simultaneous Speed Tests and Prevent Abuse #111

Open jackthomasanderson opened 1 year ago

jackthomasanderson commented 1 year ago

Hi again @openspeedtest,

I am proposing two new features: the ability to limit the number of simultaneous speed tests that can be run, and the ability to set a daily limit on the number of speed tests that can be run from a single IP address.

Limiting the number of simultaneous speed tests would ensure that all users can get a fair and accurate measurement of their internet connection speed, without being affected by other users who are also running tests. This would be especially beneficial for users with high-speed internet connections, as it would prevent their results from being skewed by other users who are running multiple tests at the same time.

Setting a daily limit on the number of speed tests that can be run from a single IP address would help to prevent the abuse of the OpenSpeedTest service by bots or automated scripts. This type of abuse can saturate the service and make it unavailable to other users. By limiting the number of speed tests that can be run from a single IP address, we can help to ensure that the service is available to all users, even during periods of peak usage.

I believe that these features would be a valuable addition to OpenSpeedTest.

Regards,

Jack

openspeedtest commented 1 year ago

It's already planned, but it won't be happening in the near future. Prior to that, we have to create our own Server in a low-level language, which isn't a simple task. Right now, I'm occupied with other projects. For now you can implement Nginx rate limits or IP-based access controls on your server.

jackthomasanderson commented 1 year ago

Thank you for the reply. I understand that developing a new server is a complex task, and I appreciate your transparency about the timeline. For now, I will implement Nginx limit_conn_module and limit_req_module.

By any chance have you already thought of a configuration for these Nginx modules?

I am excited to see the new server when it is ready. I believe that it will be a valuable addition to the OpenSpeedTest service, and I look forward to using it.

openspeedtest commented 1 year ago

I don't have a configuration with rate limiting. You can check the Nginx Guides online. In general, both the limit_conn_module and limit_req_module are included in the standard NGINX package and are typically compiled by default in most precompiled binary distributions of NGINX. All you need to do is edit the configuration file.