{ "info": { "author": "Bruno Reni\u00e9", "author_email": "bruno@renie.fr", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 1.11", "Framework :: Django :: 2.0", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5" ], "description": "Django-ratelimit-backend\n------------------------\n\n.. image:: https://api.travis-ci.org/brutasse/django-ratelimit-backend.png\n :alt: Build Status\n :target: https://travis-ci.org/brutasse/django-ratelimit-backend\n\nRate-limit your login attempts at the authentication backend level. Login\nattempts are stored in the cache for 5 minutes and IPs with more than 30\nfailed login attempts in the last 5 minutes are blocked.\n\nThe numbers (30 attempts, 5 minutes) as well as the blocking strategy can be\ncustomized.\n\n* Authors: Bruno Reni\u00e9 and `contributors`_\n\n .. _contributors: https://github.com/brutasse/django-ratelimit-backend/contributors\n\n* Licence: BSD\n\n* Compatibility: Django 1.8 and greater\n\n* Documentation: https://django-ratelimit-backend.readthedocs.io\n\n* Code: https://github.com/brutasse/django-ratelimit-backend\n\nCredits\n-------\n\n* Simon Willison for his `ratelimitcache`_ idea\n\n .. _ratelimitcache: http://blog.simonwillison.net/post/57956846132/ratelimitcache\n\nHacking\n-------\n\n::\n\n git clone https://brutasse@github.com/brutasse/django-ratelimit-backend.git\n\nHack and run the tests::\n\n python setup.py test\n\nTo run the tests for all supported Python and Django versions::\n\n pip install tox\n tox\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/brutasse/django-ratelimit-backend", "keywords": "", "license": "BSD licence, see LICENCE file", "maintainer": "", "maintainer_email": "", "name": "django-ratelimit-backend", "package_url": "https://pypi.org/project/django-ratelimit-backend/", "platform": "", "project_url": "https://pypi.org/project/django-ratelimit-backend/", "project_urls": { "Homepage": "https://github.com/brutasse/django-ratelimit-backend" }, "release_url": "https://pypi.org/project/django-ratelimit-backend/2.0/", "requires_dist": [ "Django" ], "requires_python": "", "summary": "Login rate-limiting at the auth backend level", "version": "2.0" }, "last_serial": 4210529, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "4dca80b02f8f3225e1bde41cb3564f53", "sha256": "6e86479af89e3f65112be90a52cf77c282542f5dfcfef751a66ec44b5ef7b79f" }, "downloads": -1, "filename": "django-ratelimit-backend-0.1.tar.gz", "has_sig": false, "md5_digest": "4dca80b02f8f3225e1bde41cb3564f53", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13495, "upload_time": "2011-10-18T23:04:45", "url": "https://files.pythonhosted.org/packages/89/f8/3fb2982ce42d68c288701048c1308ec674e43dc4ae1490b9e3cf360bec91/django-ratelimit-backend-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "7dfa8e5587e07df0acbf8597a0c4acec", "sha256": "b3265eb6e153d2730df79ef242076f6cd87e8d0915a531ddcbf5b6ed5e19e77c" }, "downloads": -1, "filename": "django-ratelimit-backend-0.2.tar.gz", "has_sig": false, "md5_digest": "7dfa8e5587e07df0acbf8597a0c4acec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14797, "upload_time": "2012-07-31T11:40:23", "url": "https://files.pythonhosted.org/packages/24/6d/eeabfb6ba4c3c2219d2ca211acbb0323ea69fc314e55fd7ae0d8c4a32e70/django-ratelimit-backend-0.2.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "6fdcf8d8ffabc6879b2b7b03be370398", "sha256": "cc4310e14991b28db32e8d16f6df92464b7c7dd135237ec0ff275da8dcb365a2" }, "downloads": -1, "filename": "django-ratelimit-backend-0.2.1.tar.gz", "has_sig": false, "md5_digest": "6fdcf8d8ffabc6879b2b7b03be370398", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14832, "upload_time": "2012-10-26T09:18:24", "url": "https://files.pythonhosted.org/packages/6f/03/d602d0100e7871ddb45ef482748de0c918a48635264ab1d273ccb243d6c0/django-ratelimit-backend-0.2.1.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "3912379d77e833ceddc902995eccc2ec", "sha256": "8568bada5b5b21dc4596964aae9f9ec90717c3f50eb3b9b1bf0d618aef2286eb" }, "downloads": -1, "filename": "django-ratelimit-backend-0.3.tar.gz", "has_sig": false, "md5_digest": "3912379d77e833ceddc902995eccc2ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15474, "upload_time": "2012-11-22T09:54:29", "url": "https://files.pythonhosted.org/packages/c9/3c/eb3dd5ae4b850a569fa3b9253313708e807fd36d5a8d55d8d8b78f90c0b9/django-ratelimit-backend-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "d1eeabbaea31e8ed775baeb3ebf38e2b", "sha256": "3b7a29f099bcff2c4acdebbb39682dd13ba42a6301c2dcc48eebacb202602afe" }, "downloads": -1, "filename": "django-ratelimit-backend-0.4.tar.gz", "has_sig": false, "md5_digest": "d1eeabbaea31e8ed775baeb3ebf38e2b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15740, "upload_time": "2013-01-20T15:52:35", "url": "https://files.pythonhosted.org/packages/2e/1f/00bcdb22df6b6dde5316f10bc408aed0579178477208f4e8ccf2c3d1272a/django-ratelimit-backend-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "783011da375b6083416ad9acbc799e17", "sha256": "4360f5944fc58278aa08d920bdfd2da8c0d69aa9bac6f6f3a4f790470bd82776" }, "downloads": -1, "filename": "django-ratelimit-backend-0.5.tar.gz", "has_sig": false, "md5_digest": "783011da375b6083416ad9acbc799e17", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15923, "upload_time": "2013-02-14T21:45:37", "url": "https://files.pythonhosted.org/packages/ac/19/eb198ebbfde481a4129316d8bd6b81b64ac21ec829d363bd8d8aeb8d1039/django-ratelimit-backend-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "b85975950ac725293e17a988d35a1277", "sha256": "a5f1839fd0a221ccfd1f50e302997e21098e8ee52a38aa8fc98836747ee6a3a3" }, "downloads": -1, "filename": "django-ratelimit-backend-0.6.tar.gz", "has_sig": false, "md5_digest": "b85975950ac725293e17a988d35a1277", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16773, "upload_time": "2013-04-18T11:53:08", "url": "https://files.pythonhosted.org/packages/ac/3b/4b027de29d3e4d15a5625b4d1e974c739028668db7d51f644582bd39b0e3/django-ratelimit-backend-0.6.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "b54ab5e35fb2dbeeef5916b90d2ecc12", "sha256": "d4f5c489c34a15e76dc842e6836cf9579ded0587efcd57145eab73e18fb992ce" }, "downloads": -1, "filename": "django_ratelimit_backend-0.6.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b54ab5e35fb2dbeeef5916b90d2ecc12", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11596, "upload_time": "2014-01-21T22:22:23", "url": "https://files.pythonhosted.org/packages/fe/0a/3c7baa1359a69d40623daa61da155cc9e6ef592651d86e3775e12a897d7b/django_ratelimit_backend-0.6.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7e66fbc488b22baa422054be74bb9880", "sha256": "f6c5fbb512f64e5ecd9ce5d74c9580ef1c2b2ba892fd5e67e808aa8fc99342d4" }, "downloads": -1, "filename": "django-ratelimit-backend-0.6.1.tar.gz", "has_sig": false, "md5_digest": "7e66fbc488b22baa422054be74bb9880", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16856, "upload_time": "2014-01-21T22:22:27", "url": "https://files.pythonhosted.org/packages/c9/f7/644e7f9e0f23a44e4fed472024a49b84146f8d63cfed172934f6951c46d6/django-ratelimit-backend-0.6.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "1eaefdae9b18f53085ec22451b7be6f2", "sha256": "251c5ec79806e22d44ab3cd1e36d0b9d0f884768c4cb7391f162d718b6593e6c" }, "downloads": -1, "filename": "django_ratelimit_backend-0.6.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1eaefdae9b18f53085ec22451b7be6f2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11748, "upload_time": "2014-07-28T20:42:04", "url": "https://files.pythonhosted.org/packages/0e/a9/fcccdfddd06205c7b3357a4c1f92f6ab4b89c0fd38a493b17bd7bb7a6f0f/django_ratelimit_backend-0.6.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "997e6ceb4fc583c6acd492e850cef906", "sha256": "d81dcd6a63b82528cdadb985f11687ffbea81775264bf9cad77f23e8b51d1399" }, "downloads": -1, "filename": "django-ratelimit-backend-0.6.2.tar.gz", "has_sig": false, "md5_digest": "997e6ceb4fc583c6acd492e850cef906", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17055, "upload_time": "2014-07-28T20:42:06", "url": "https://files.pythonhosted.org/packages/38/ac/c7adb24683330cebdfc73a37dd6344a0e39be2ac66a2b0c9f08d10ff11f3/django-ratelimit-backend-0.6.2.tar.gz" } ], "0.6.3": [ { "comment_text": "", "digests": { "md5": "bb3ebcee9ca45729710b33562bf55a6b", "sha256": "c349b8628ea6fa605be00feb9313d09711e826e8ed1a875614c3dea493920091" }, "downloads": -1, "filename": "django_ratelimit_backend-0.6.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bb3ebcee9ca45729710b33562bf55a6b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11773, "upload_time": "2015-02-12T16:39:28", "url": "https://files.pythonhosted.org/packages/d0/d0/a5d7aaf7600cc449fa8725da1a1199766a1a448ae6f870b3ff02579b9964/django_ratelimit_backend-0.6.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "968805349f7d6d430b9086a02b812d21", "sha256": "e53beb95dba2a23dae1ab92ad10c5cfc8cbcde976a43be16922671ec05144fd2" }, "downloads": -1, "filename": "django-ratelimit-backend-0.6.3.tar.gz", "has_sig": false, "md5_digest": "968805349f7d6d430b9086a02b812d21", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17184, "upload_time": "2015-02-12T16:39:30", "url": "https://files.pythonhosted.org/packages/90/90/b0d636ad6cb9e334169900b250c7433b2d6d4466700d15143438a85561dc/django-ratelimit-backend-0.6.3.tar.gz" } ], "0.6.4": [ { "comment_text": "", "digests": { "md5": "ca1dedb0c85d8a9d8c4be44665f109f5", "sha256": "57fb09b52d50951ee7d7ed8722e8b7c03b7f1fc0055216827026d1a52605c5ea" }, "downloads": -1, "filename": "django_ratelimit_backend-0.6.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ca1dedb0c85d8a9d8c4be44665f109f5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11811, "upload_time": "2015-03-31T11:44:03", "url": "https://files.pythonhosted.org/packages/68/0f/e60d4a4fe1cc9e0028c17a321304230461d77f6a4d77acbfad9231d0047b/django_ratelimit_backend-0.6.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0650451a20da55119b1b7b442dcd0ab8", "sha256": "f812932a7e596e132373f36eca52cfe318c7d6050b5a703dbcff6ac699e65701" }, "downloads": -1, "filename": "django-ratelimit-backend-0.6.4.tar.gz", "has_sig": false, "md5_digest": "0650451a20da55119b1b7b442dcd0ab8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17203, "upload_time": "2015-03-31T11:44:06", "url": "https://files.pythonhosted.org/packages/b1/20/305c0867afc22ce48e81e4356cab85c19a722dd56a5b45df15a3994fe54c/django-ratelimit-backend-0.6.4.tar.gz" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "add3abc0a561d52c1c5ff473db264f23", "sha256": "1b0cb6b188b34db60244b9cea2bf3540b856ccba9cf5095da3af4f39485c31e6" }, "downloads": -1, "filename": "django_ratelimit_backend-1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "add3abc0a561d52c1c5ff473db264f23", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 11865, "upload_time": "2015-07-10T08:26:04", "url": "https://files.pythonhosted.org/packages/b7/ff/740b8ad4e69479226382ed11874c4323767e547c822e47e0835ec2a42fd3/django_ratelimit_backend-1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "224dcbb5efbd4b124bea7feef38d70a2", "sha256": "8906cae8d9e8ee0f2234031ced84b21118444852a3e18e67e3f03f047fc00309" }, "downloads": -1, "filename": "django-ratelimit-backend-1.0.tar.gz", "has_sig": false, "md5_digest": "224dcbb5efbd4b124bea7feef38d70a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15016, "upload_time": "2015-07-10T08:26:08", "url": "https://files.pythonhosted.org/packages/39/bc/926f712280b42e1c9e4606b1ea90a143d8d61bcbd974a10d3dac787ed453/django-ratelimit-backend-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "4f54660ba0bc66b30be6bfab051a9d8e", "sha256": "bbac388840c8b9fe144f88751613796f6cd84a03fc75930200429eb710df5f59" }, "downloads": -1, "filename": "django_ratelimit_backend-1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4f54660ba0bc66b30be6bfab051a9d8e", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 7900, "upload_time": "2017-03-16T09:26:24", "url": "https://files.pythonhosted.org/packages/b5/41/f368faf938673a9617f4ea8ca0ddea339a436b8cfd3250d22d4c128b6d7e/django_ratelimit_backend-1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "25e6642a9d6b273d8a1fbc6f41413ba0", "sha256": "4d383bc1d4d994377f7e308157a9dcf7bf52e84355aa095b18a1bd3aa7c07c6b" }, "downloads": -1, "filename": "django-ratelimit-backend-1.1.tar.gz", "has_sig": false, "md5_digest": "25e6642a9d6b273d8a1fbc6f41413ba0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14213, "upload_time": "2017-03-16T09:26:21", "url": "https://files.pythonhosted.org/packages/42/4f/889ed6f76c49d95f3e980dde1bb9507214e681a4d00de25f7dbffb021674/django-ratelimit-backend-1.1.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "19ebc5d120c2b822aa24aebe2d53dc21", "sha256": "f2b7d89d0bb66f3485a5c860931bcf69e797c2396f249bacdac253f35711fc85" }, "downloads": -1, "filename": "django_ratelimit_backend-1.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "19ebc5d120c2b822aa24aebe2d53dc21", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7972, "upload_time": "2017-03-30T13:57:23", "url": "https://files.pythonhosted.org/packages/f2/7a/936e330b5b87a69091664937525a39396d70b491edaa9a4e4b83370491dc/django_ratelimit_backend-1.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "876c7a42ff13ebab8cb11e5fe197079d", "sha256": "e9874508deda63371d9e0e3c01b586be84befe35dcc51b2794ef9a6b0f0ef4b0" }, "downloads": -1, "filename": "django-ratelimit-backend-1.1.1.tar.gz", "has_sig": false, "md5_digest": "876c7a42ff13ebab8cb11e5fe197079d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14295, "upload_time": "2017-03-30T13:57:24", "url": "https://files.pythonhosted.org/packages/f8/83/67f3dbb9d9f44620bca325ae402ed0e608e324d6187edc4f59d1465ec571/django-ratelimit-backend-1.1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "404a3d517f1c840620b870a0c2c84b41", "sha256": "d06ec07e6f33b39dbef317140807d079a87b4e9ad0f2973be6b10e50a9ff3f42" }, "downloads": -1, "filename": "django_ratelimit_backend-1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "404a3d517f1c840620b870a0c2c84b41", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 8048, "upload_time": "2017-09-13T16:55:46", "url": "https://files.pythonhosted.org/packages/a1/d3/4c847ca0c8dc3068a26326cadc41d56961793f4cbfc8f571a6dfad202837/django_ratelimit_backend-1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7b2aa05f67389ca6f5d5b7c8392ddbeb", "sha256": "8114c0737b71bf5028181139d5c9ee2e45f453e3c46c8ae7cbcc6cdaf9f2b2c2" }, "downloads": -1, "filename": "django-ratelimit-backend-1.2.tar.gz", "has_sig": false, "md5_digest": "7b2aa05f67389ca6f5d5b7c8392ddbeb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14530, "upload_time": "2017-09-13T16:55:48", "url": "https://files.pythonhosted.org/packages/ee/1d/83d1c50d6714ce6224678a488a627dfc1c89d6605b2cef2c7bcef15efb7f/django-ratelimit-backend-1.2.tar.gz" } ], "2.0": [ { "comment_text": "", "digests": { "md5": "1258bc89b692233d391900a1f1a5e295", "sha256": "9fa1f8b3f45101f49eabb2cdfd032e1af1e12f37b8b888ca3265f363389dd8be" }, "downloads": -1, "filename": "django_ratelimit_backend-2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1258bc89b692233d391900a1f1a5e295", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6422, "upload_time": "2018-08-27T09:54:26", "url": "https://files.pythonhosted.org/packages/c1/61/6230218ab8137235581461b48bc16cedf95946cf1d18ae4df7ee882a01e4/django_ratelimit_backend-2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "43443c8f75b8e936da25473ab2fb4a01", "sha256": "de1056767b0cf3a5a78b2e7685153d55891720e2b3fdbd1a35cf689a97b1bffe" }, "downloads": -1, "filename": "django-ratelimit-backend-2.0.tar.gz", "has_sig": false, "md5_digest": "43443c8f75b8e936da25473ab2fb4a01", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14544, "upload_time": "2018-08-27T09:54:28", "url": "https://files.pythonhosted.org/packages/eb/94/8ee54ad1ae413f5547ce9aeeedb89a910154908efce1600c276418cdf724/django-ratelimit-backend-2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1258bc89b692233d391900a1f1a5e295", "sha256": "9fa1f8b3f45101f49eabb2cdfd032e1af1e12f37b8b888ca3265f363389dd8be" }, "downloads": -1, "filename": "django_ratelimit_backend-2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1258bc89b692233d391900a1f1a5e295", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6422, "upload_time": "2018-08-27T09:54:26", "url": "https://files.pythonhosted.org/packages/c1/61/6230218ab8137235581461b48bc16cedf95946cf1d18ae4df7ee882a01e4/django_ratelimit_backend-2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "43443c8f75b8e936da25473ab2fb4a01", "sha256": "de1056767b0cf3a5a78b2e7685153d55891720e2b3fdbd1a35cf689a97b1bffe" }, "downloads": -1, "filename": "django-ratelimit-backend-2.0.tar.gz", "has_sig": false, "md5_digest": "43443c8f75b8e936da25473ab2fb4a01", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14544, "upload_time": "2018-08-27T09:54:28", "url": "https://files.pythonhosted.org/packages/eb/94/8ee54ad1ae413f5547ce9aeeedb89a910154908efce1600c276418cdf724/django-ratelimit-backend-2.0.tar.gz" } ] }