{ "info": { "author": "vlad1777d (Vladislav Naumov)", "author_email": "naumovvladislav@mail.ru", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "### sanic_csrf\n\nWorks with all modern web-browsers, which support SameSite cookies.\n(Firefox 60, Google Chrome 51, Opera 39 and later)\n\nChecks request for CSRF token.\nIf CSRF is absent or invalid:\n If it's a get request - installs new token in cookie and redirects to same page.\n In other cases - raises 403 exception (forbidden).\n\nRequires some session middleware to be installed.\nThat session plugin must use such interface:\n\t```python\n request['session'].get('variable') or request['session']['variable']\n request['session']['variable'] = 4\n ```\nFor example, this ones will fit:\n- 'sanic_session' (https://github.com/subyraman/sanic_session);\n- 'sanic_session' (https://github.com/vlad1777d/sanic_session)\n (fork of previous, more convenient middleware installation,\n can be used without package installation);\n\n\n## Example\n\nA simple example:\n\n\n```python\n from sanic import Sanic\n from sanic.response import text\n import sanic_session\n import sanic_csrf\n\n\n app = Sanic()\n sanic_session.install_middleware(app, 'InMemorySessionInterface')\n sanic_csrf.install_middleware(app)\n\n\n @app.route(\"/\")\n async def index(request):\n # interact with the session like a normal dict\n if not request['session'].get('foo'):\n request['session']['foo'] = 0\n\n request['session']['foo'] += 1\n\n return text(request['session']['foo'])\n\n if __name__ == \"__main__\":\n app.run(host=\"0.0.0.0\", port=8000, debug=True)\n```\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/vlad1777d/sanic_csrf", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "sanic_csrf", "package_url": "https://pypi.org/project/sanic_csrf/", "platform": "", "project_url": "https://pypi.org/project/sanic_csrf/", "project_urls": { "Homepage": "https://bitbucket.org/vlad1777d/sanic_csrf" }, "release_url": "https://pypi.org/project/sanic_csrf/0.1.3/", "requires_dist": null, "requires_python": "", "summary": "Protection from CSRF attacks for Sanic framework", "version": "0.1.3" }, "last_serial": 4106154, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "ca669ffb71f60ffc4b0a43ccea03b3c4", "sha256": "3bbc7bf965069ad42c82d7eb7f9ce5f00f0482b0fdb6b8989bcab1272cf12d7e" }, "downloads": -1, "filename": "sanic_csrf-0.1.1.tar.gz", "has_sig": false, "md5_digest": "ca669ffb71f60ffc4b0a43ccea03b3c4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2255, "upload_time": "2018-07-26T18:46:11", "url": "https://files.pythonhosted.org/packages/65/9a/2b84e0d52e7acb64025978b1e440517fe945f02d46bf7a32f86fdacd3ea8/sanic_csrf-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "89fbaa8a3155a2ebf38761b345a3c973", "sha256": "23769093c8add1e0f871bbb67cb731ddc9b20e53788e89b5159a46d13121cd59" }, "downloads": -1, "filename": "sanic_csrf-0.1.2.tar.gz", "has_sig": false, "md5_digest": "89fbaa8a3155a2ebf38761b345a3c973", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2256, "upload_time": "2018-07-26T18:47:55", "url": "https://files.pythonhosted.org/packages/49/5d/ac30e7b010d135c56193109650e1da5f0bdbf2b28359f5c381456c4d362d/sanic_csrf-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "1f8c17d6ec0b2ba11dadf1985a2b5960", "sha256": "ba4d52f5de664e67ed21e0a59c1980e339d90a6b5412b522d6e5145ffecc90dd" }, "downloads": -1, "filename": "sanic_csrf-0.1.3.tar.gz", "has_sig": false, "md5_digest": "1f8c17d6ec0b2ba11dadf1985a2b5960", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2256, "upload_time": "2018-07-26T20:04:03", "url": "https://files.pythonhosted.org/packages/bd/66/26367389ad7b0b7197b075195a061317c6505f4d192721ba982241d872c2/sanic_csrf-0.1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1f8c17d6ec0b2ba11dadf1985a2b5960", "sha256": "ba4d52f5de664e67ed21e0a59c1980e339d90a6b5412b522d6e5145ffecc90dd" }, "downloads": -1, "filename": "sanic_csrf-0.1.3.tar.gz", "has_sig": false, "md5_digest": "1f8c17d6ec0b2ba11dadf1985a2b5960", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2256, "upload_time": "2018-07-26T20:04:03", "url": "https://files.pythonhosted.org/packages/bd/66/26367389ad7b0b7197b075195a061317c6505f4d192721ba982241d872c2/sanic_csrf-0.1.3.tar.gz" } ] }