{ "info": { "author": "Mike Dobbs", "author_email": "mike.j.dobbs@gmail.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Django", "License :: OSI Approved :: BSD License", "Programming Language :: Python" ], "description": "Django SSL Slapper\n===================\n\nDjango-SSL-Slapper is a middleware that allows you to set urls to ssl only. It can also redirects anonymous users off your https service onto your http. Logged-in users may also be directed to https.\n\nDjango-SSL-Slapper can also use cache to count the number of login attempts and slap away excessive entries (default more than 20 per minute). THe user account is temporary locked for a timer period (default 1 minute). The default settings should disrupt automated attempts for entry without bothering even the quickest users. \n\nInstallation\n------------\n\n```pip install django-ssl-slapper```\n\nAdd ```'ssl_slapper.middleware.ssl_redirect'``` to middleware in your django settings file for redirection\n\nAdd ```'ssl_slapper.middleware.rate_limit'``` to middleware in your django settings file for rate_limiting. You will want to enable memcache for this.\n\nIt is recommended that you set ```SESSION_COOKIE_SECURE = True``` to ensure that your site is secured to use https only for authenticated users.\n\nThat's it! The middleware shuld automatically detect your login pages and slap away!\n\nSSL_Redirect Settings\n--------\n\n```SSL_SLAPPER_SSL_ONLY_PAGES = (reverse(django.contrib.auth.views.login), [[any admin pages]])``` Add to this list any pages that you want to always redirect to https. \n\n```SSL_SLAPPER_SSL_REDIRECT_ANONYMOUS=True``` Set to true to redirect anonymous users to http.\n\n```SSL_SLAPPER_SSL_REDIRECT_AUTHENTICATED=True``` Set to true to redirect authenticated users to https.\n\n```SSL_REDIRECT_COOKIE= 'logged-in'``` Set to the name you want for the cookie to identify logged-in users\n\n```SSL_SLAPPER_SSL_IGNORE_PAGES=None``` Set to a list containing any urls, for examples API url, that should not be redirected.\n\nSSL_Rate_Limit Settings\n--------\n\n```SSL_SLAPPER_RATE_LIMIT_PAGES = SSL_ONLY_PAGES``` Add to this list any pages that you want to ratelimit. \n```SSL_SLAPPER_RATE_LIMIT_MINUTES=1``` = Minutes to wait before login counter is reset\n```SSL_SLAPPER_RATE_LIMIT_KEY_FIELD='username'``` Field, if present, to track login attemps. If missing, then will use ip address\n```SSL_SLAPPER_RATE_LIMIT_MAX_REQUESTS=20``` Set to the maximum number of requests within the RATE_LIMIT_MINUTES before the account will be locked.\n```SSL_SLAPPER_RATE_LIMIT_CACHE_PREFIX='rl-'``` Cache prefix for rate limit cache\n\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/queenorych/django-ssl-slapper", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "django-ssl-slapper", "package_url": "https://pypi.org/project/django-ssl-slapper/", "platform": "", "project_url": "https://pypi.org/project/django-ssl-slapper/", "project_urls": { "Homepage": "https://bitbucket.org/queenorych/django-ssl-slapper" }, "release_url": "https://pypi.org/project/django-ssl-slapper/1.2/", "requires_dist": null, "requires_python": "", "summary": "A middleware that secures URLS.", "version": "1.2" }, "last_serial": 3010920, "releases": { "0.1.1a2": [ { "comment_text": "", "digests": { "md5": "960e170875b80e8afbc44a5a12727235", "sha256": "3a9e1d26ed00214ccdd125762333deb04aaacdcf58530f48fcacf70514671af3" }, "downloads": -1, "filename": "django-ssl-slapper-0.1.1a2.win32.exe", "has_sig": false, "md5_digest": "960e170875b80e8afbc44a5a12727235", "packagetype": "bdist_wininst", "python_version": "any", "requires_python": null, "size": 203140, "upload_time": "2013-03-28T04:14:03", "url": "https://files.pythonhosted.org/packages/91/13/71905929767263927cd77c3583d9062b1418abad696e0a29e24967b13179/django-ssl-slapper-0.1.1a2.win32.exe" }, { "comment_text": "", "digests": { "md5": "ff8f0c3f0bf18b1da8bd28d175fc496b", "sha256": "13175bb4e8ba9ea37534c7113eb958c91660176d42ec8082d3f7e88f32fa7400" }, "downloads": -1, "filename": "django-ssl-slapper-0.1.1a2.zip", "has_sig": false, "md5_digest": "ff8f0c3f0bf18b1da8bd28d175fc496b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9694, "upload_time": "2013-03-28T04:13:04", "url": "https://files.pythonhosted.org/packages/e3/c7/108be3af12de723742185902c9c4f644c1dada714fcea3faeb896549f786/django-ssl-slapper-0.1.1a2.zip" } ], "0.1.2a3": [ { "comment_text": "", "digests": { "md5": "8c5cf45226edddd9fb2d623942d21fad", "sha256": "670f51dc430ceabc420c5042fbc2e9dab093abf27aaede817b39481b0cacd727" }, "downloads": -1, "filename": "django-ssl-slapper-0.1.2a3.win32.exe", "has_sig": false, "md5_digest": "8c5cf45226edddd9fb2d623942d21fad", "packagetype": "bdist_wininst", "python_version": "any", "requires_python": null, "size": 205465, "upload_time": "2013-03-29T21:31:28", "url": "https://files.pythonhosted.org/packages/a9/83/0b00b66522d87b63c6f9f453e02bf909e6307810f83c45133cccade95204/django-ssl-slapper-0.1.2a3.win32.exe" }, { "comment_text": "", "digests": { "md5": "da782d476b38bd0ac715c8d3cde5d3c7", "sha256": "d7bcefe6e67d11dc4988a6002026596e67129b52a67accd21196a93e4dba2687" }, "downloads": -1, "filename": "django-ssl-slapper-0.1.2a3.zip", "has_sig": false, "md5_digest": "da782d476b38bd0ac715c8d3cde5d3c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10146, "upload_time": "2013-03-29T21:31:04", "url": "https://files.pythonhosted.org/packages/67/10/3bcc5a1e6bc4c5e8a67cd07b5622cc13ef083c019a9e76b28d6cac6170e3/django-ssl-slapper-0.1.2a3.zip" } ], "0.1.3a4": [ { "comment_text": "", "digests": { "md5": "9cdf0b1b02d8c1ac3788cc1879feee15", "sha256": "a860170432f4af4e3ab082da1ac1c479e350ca9bd326638f1ea79bb7e6baea00" }, "downloads": -1, "filename": "django-ssl-slapper-0.1.3a4.zip", "has_sig": false, "md5_digest": "9cdf0b1b02d8c1ac3788cc1879feee15", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10233, "upload_time": "2013-03-30T03:09:52", "url": "https://files.pythonhosted.org/packages/9c/53/3608a99cb848b4ddb5448ac1e1a49025c5cfa376f345f7e277105c6b8a4c/django-ssl-slapper-0.1.3a4.zip" } ], "0.1.4a5": [ { "comment_text": "", "digests": { "md5": "39d13c8936be3ed3adc11f1f818cae9e", "sha256": "bd5888c4f996c11866d6870bccb32451a74b0cd0033373b3811a72458ceca083" }, "downloads": -1, "filename": "django-ssl-slapper-0.1.4a5.zip", "has_sig": false, "md5_digest": "39d13c8936be3ed3adc11f1f818cae9e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10236, "upload_time": "2013-04-01T03:45:16", "url": "https://files.pythonhosted.org/packages/ec/1b/50dd5112468624e20be664e325a3a47c82d05516eb610487508c5613773e/django-ssl-slapper-0.1.4a5.zip" } ], "0.1.4a6": [ { "comment_text": "", "digests": { "md5": "3099772fbe5de2e61370cd733bd4ae36", "sha256": "5979ae901cefc751dfd0d0bc8acf75ad362e5cad27d54897645e3f18340aaee5" }, "downloads": -1, "filename": "django-ssl-slapper-0.1.4a6.zip", "has_sig": false, "md5_digest": "3099772fbe5de2e61370cd733bd4ae36", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10239, "upload_time": "2013-04-12T19:20:36", "url": "https://files.pythonhosted.org/packages/1f/12/8561e1fdbb3b09cfc2a714202717d9cf072b3d13d4ca2dae028b8210e80b/django-ssl-slapper-0.1.4a6.zip" } ], "0.1.5a7": [ { "comment_text": "", "digests": { "md5": "e1d9a6b2577dbef102a2522890fc38be", "sha256": "e74c476625d89c25e6f82ad730a1cf39ce2d2e1f86a9b5aadb32daa1684f0300" }, "downloads": -1, "filename": "django-ssl-slapper-0.1.5a7.zip", "has_sig": false, "md5_digest": "e1d9a6b2577dbef102a2522890fc38be", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10239, "upload_time": "2013-05-08T22:38:09", "url": "https://files.pythonhosted.org/packages/c0/8d/82e55ef1276b04a9a6d328811d6fad7f8a07a50c7848b58c2ba99bc454ef/django-ssl-slapper-0.1.5a7.zip" } ], "0.1.6b8": [ { "comment_text": "", "digests": { "md5": "032fcbd047f9ab6bd755e19e73b328a5", "sha256": "2ec19acf5bb0c267c1c5cae88c78544f85616940e1b36f13277916507a55ff46" }, "downloads": -1, "filename": "django-ssl-slapper-0.1.6b8.zip", "has_sig": false, "md5_digest": "032fcbd047f9ab6bd755e19e73b328a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10286, "upload_time": "2013-08-19T02:02:31", "url": "https://files.pythonhosted.org/packages/c5/a4/4ccd33c1d75037b4b828e57017956c602f7b57311f49cdee015af4ee1b97/django-ssl-slapper-0.1.6b8.zip" } ], "0.1.7b10": [ { "comment_text": "", "digests": { "md5": "d3a91b83a95ca0bedbcf1ce72ee46369", "sha256": "61d25cdda674238aab2a1367d91bf318b693ba10da9f66818a1c073683551644" }, "downloads": -1, "filename": "django-ssl-slapper-0.1.7b10.zip", "has_sig": false, "md5_digest": "d3a91b83a95ca0bedbcf1ce72ee46369", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10320, "upload_time": "2013-09-01T00:01:57", "url": "https://files.pythonhosted.org/packages/01/1c/42214414a98ed54404fbca6eae4d86bc239b0f42d27489a3c5e838db4ebf/django-ssl-slapper-0.1.7b10.zip" } ], "0.1.7b9": [ { "comment_text": "", "digests": { "md5": "b2124b69c4fa9f6511436357d472ee1e", "sha256": "f0d5197f5e8009c81bf43e8842cabcf35b280da1d25368e5d560b70f2f8c81e7" }, "downloads": -1, "filename": "django-ssl-slapper-0.1.7b9.zip", "has_sig": false, "md5_digest": "b2124b69c4fa9f6511436357d472ee1e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10290, "upload_time": "2013-09-01T00:00:35", "url": "https://files.pythonhosted.org/packages/24/3e/0644dd1282680a2bf502931ae820061bd4048ecbc3954ea13627bd38e6ce/django-ssl-slapper-0.1.7b9.zip" } ], "0.1a1": [ { "comment_text": "", "digests": { "md5": "2490a0824b8e4ced310841d9383e70fb", "sha256": "e9084b368042c49c733a1eca80e8e1d586a511623db7aeefbcb2fb37d59dea6c" }, "downloads": -1, "filename": "django-ssl-slapper-0.1a1.zip", "has_sig": false, "md5_digest": "2490a0824b8e4ced310841d9383e70fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8349, "upload_time": "2013-03-27T04:09:08", "url": "https://files.pythonhosted.org/packages/d4/8e/020814db3078361cb09232b8253f6ba3eb7758c4e3d0cbdc45b4e0f1df36/django-ssl-slapper-0.1a1.zip" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "a021469674544524c002d7e8d2f7a270", "sha256": "844d7f04c9dd6f707785b9d2aa8f315e088c9d8279590f6a2692a8756d4e6e03" }, "downloads": -1, "filename": "django-ssl-slapper-1.0.zip", "has_sig": false, "md5_digest": "a021469674544524c002d7e8d2f7a270", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10159, "upload_time": "2013-10-12T15:01:47", "url": "https://files.pythonhosted.org/packages/5a/ee/39d8d46ecf8f879cca1b999286f568bc2540e0fa4a4f9a155ebedb47b53a/django-ssl-slapper-1.0.zip" } ], "1.0b11": [ { "comment_text": "", "digests": { "md5": "fb81ceca8be5a7b410364f9db7f8a21a", "sha256": "6b4153ae2a2cba41fb2727d6384dd437de9dc4fc287e4bc67cba43ae2e880df4" }, "downloads": -1, "filename": "django-ssl-slapper-1.0b11.zip", "has_sig": false, "md5_digest": "fb81ceca8be5a7b410364f9db7f8a21a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10250, "upload_time": "2013-10-12T15:01:25", "url": "https://files.pythonhosted.org/packages/c4/35/7f920d670f2e03674eea05f83be5b575e6bd7de9142e674a3aa614078875/django-ssl-slapper-1.0b11.zip" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "0a0b7c28d44359f544691c7fce4636c4", "sha256": "bcb01d073f9cf44b3db888867a38e0556f5f8a65126a3209c59368972033b853" }, "downloads": -1, "filename": "django-ssl-slapper-1.1.zip", "has_sig": false, "md5_digest": "0a0b7c28d44359f544691c7fce4636c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10172, "upload_time": "2013-11-24T21:30:32", "url": "https://files.pythonhosted.org/packages/c7/1d/27407e9cd672c552c975629df2a5bfd7d710e779740807e765e2e489ca9b/django-ssl-slapper-1.1.zip" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "6c232a7589e919cb13e512b6d7208204", "sha256": "1668a6ad11a3f731259620a595f1116656222a4e7c36519f7234d4d616efbeab" }, "downloads": -1, "filename": "django_ssl_slapper-1.2-py2-none-any.whl", "has_sig": false, "md5_digest": "6c232a7589e919cb13e512b6d7208204", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 6771, "upload_time": "2017-07-10T01:57:12", "url": "https://files.pythonhosted.org/packages/f4/c0/b2e3fb49d75f067bfbd2a92924ddadd286b615fc74daac879bd2de116b65/django_ssl_slapper-1.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7111edd0819f14a06649b1defdf415ee", "sha256": "bddc3871bd2218c561f2551c23fe12c90b33275a3c239a27bb0df1f81ea63061" }, "downloads": -1, "filename": "django_ssl_slapper-1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7111edd0819f14a06649b1defdf415ee", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6774, "upload_time": "2017-07-10T01:57:14", "url": "https://files.pythonhosted.org/packages/ed/81/716654da254aff38bf0f3d86c1b934d5b935ee854c9eea67280e529eeb9f/django_ssl_slapper-1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "14f221e0b09d50c6c6430e6e82f8e153", "sha256": "ffd02320f8fee4d885c85d000046dad8b13a25832795b1464ab070d87c661016" }, "downloads": -1, "filename": "django-ssl-slapper-1.2.tar.gz", "has_sig": false, "md5_digest": "14f221e0b09d50c6c6430e6e82f8e153", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5595, "upload_time": "2017-07-10T01:57:15", "url": "https://files.pythonhosted.org/packages/62/47/55499d204fe73dcc421a1a3413fda30b61d539630f308cb740f210a83f12/django-ssl-slapper-1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6c232a7589e919cb13e512b6d7208204", "sha256": "1668a6ad11a3f731259620a595f1116656222a4e7c36519f7234d4d616efbeab" }, "downloads": -1, "filename": "django_ssl_slapper-1.2-py2-none-any.whl", "has_sig": false, "md5_digest": "6c232a7589e919cb13e512b6d7208204", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 6771, "upload_time": "2017-07-10T01:57:12", "url": "https://files.pythonhosted.org/packages/f4/c0/b2e3fb49d75f067bfbd2a92924ddadd286b615fc74daac879bd2de116b65/django_ssl_slapper-1.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7111edd0819f14a06649b1defdf415ee", "sha256": "bddc3871bd2218c561f2551c23fe12c90b33275a3c239a27bb0df1f81ea63061" }, "downloads": -1, "filename": "django_ssl_slapper-1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7111edd0819f14a06649b1defdf415ee", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6774, "upload_time": "2017-07-10T01:57:14", "url": "https://files.pythonhosted.org/packages/ed/81/716654da254aff38bf0f3d86c1b934d5b935ee854c9eea67280e529eeb9f/django_ssl_slapper-1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "14f221e0b09d50c6c6430e6e82f8e153", "sha256": "ffd02320f8fee4d885c85d000046dad8b13a25832795b1464ab070d87c661016" }, "downloads": -1, "filename": "django-ssl-slapper-1.2.tar.gz", "has_sig": false, "md5_digest": "14f221e0b09d50c6c6430e6e82f8e153", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5595, "upload_time": "2017-07-10T01:57:15", "url": "https://files.pythonhosted.org/packages/62/47/55499d204fe73dcc421a1a3413fda30b61d539630f308cb740f210a83f12/django-ssl-slapper-1.2.tar.gz" } ] }