{ "info": { "author": "lanius", "author_email": "lanius@nirvake.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Internet :: WWW/HTTP :: Dynamic Content", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "\ufeffWhat is Flask-Mitten?\n======================\n\nAdds security functions to Flask applications for preventing some of the basic threats.\n\nFeatures\n========\n\nFlask-Mitten supports Flask applications to prevent following threats.\n\n- Clickjacking\n- CSRF\n- Information disclosure through banner grabbing\n- JSON hijacking\n- Session fixation\n\nIt bundles functions of following Flask extensions.\n\n- `Flask-KVSession `_\n- `flask-csrf `_\n\nMore details, see the implementation.\n\n\nUsage\n=====\n\nInstallation\n------------\n\nInstall the extension with the following commands::\n\n pip install Flask-Mitten\n\nConfiguration\n-------------\n\nApply the extention to your app::\n\n from flaskext.mitten import Mitten\n app = Flask(__name__)\n mitten = Mitten(app)\n\nRequest headers are overridden to prevent clickjacking and information disclosure.\n\nIf you want to set your own banner, you can do it::\n\n mitten.banner = \"My Nice Banner!\"\n\nPreventing Session Fixation\n---------------------------\n\nAfter login, call a regenerate method of session object::\n\n session.regenerate()\n\nThe session ID is regenerated, and it prevents session fixation.\n\nTo discard a session, call a destroy method::\n\n session.destroy()\n\nPreventing CSRF\n---------------\n\nTo embed CSRF token, add following line to your template::\n\n \n\nA POST request is protected against CSRF automatically.\n\nIf you want to exclude a route from CSRF protection, use a csrf_exempt decorator::\n\n @mitten.csrf_exempt\n @app.route('/public_api/', methods=['POST'])\n def public_api():\n return \"result\", 200\n\nPreventing JSON Hijacking\n-------------------------\n\nIf you send a JSON response, you could use a json decorator to avoid JSON hijacking or rendering JSON responses by direct browsing::\n\n @mitten.json\n @app.route('/json_api/')\n def json_api():\n return jsonify(result='success')\n\nMore\n----\n\nFor more details, see an example app.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/lanius/flask-mitten", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "Flask-Mitten", "package_url": "https://pypi.org/project/Flask-Mitten/", "platform": "any", "project_url": "https://pypi.org/project/Flask-Mitten/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/lanius/flask-mitten" }, "release_url": "https://pypi.org/project/Flask-Mitten/0.2.1/", "requires_dist": null, "requires_python": null, "summary": "Adds security functions to Flask applications for preventing some of the basic threats.", "version": "0.2.1" }, "last_serial": 784315, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "df977f88dd460466f313e8e09b443eff", "sha256": "2a3875bbc112f7760940b51f465721ae13e6a931bbe568c8c871569b11f82a64" }, "downloads": -1, "filename": "Flask-Mitten-0.1.zip", "has_sig": false, "md5_digest": "df977f88dd460466f313e8e09b443eff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5727, "upload_time": "2012-02-28T15:44:20", "url": "https://files.pythonhosted.org/packages/a5/96/34ae484f5ac2f09ccfef77d95bfc188f3ab3ac86fcfd63dde968a744006f/Flask-Mitten-0.1.zip" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "5748f98d02392ae4fbb599a8e75bd93d", "sha256": "a3c2f160670acbfd006fdace892b265e19cfb45fe1c58190c716822cdbb8ab34" }, "downloads": -1, "filename": "Flask-Mitten-0.2.zip", "has_sig": false, "md5_digest": "5748f98d02392ae4fbb599a8e75bd93d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6255, "upload_time": "2012-03-03T04:06:39", "url": "https://files.pythonhosted.org/packages/a7/88/f2e477d1717f66aa8d72ab9c22da6ad003b5df5ae947d848ca3482d3d015/Flask-Mitten-0.2.zip" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "1ac8311a863b560d441c8e423f05166f", "sha256": "1fed723371796abb9c0678d1566fde643b3c180cc86ca598949566ab72c09892" }, "downloads": -1, "filename": "Flask-Mitten-0.2.1.zip", "has_sig": false, "md5_digest": "1ac8311a863b560d441c8e423f05166f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12175, "upload_time": "2012-03-04T09:37:44", "url": "https://files.pythonhosted.org/packages/37/59/68b7b29da71160fc247904a7c166c7f27ba34cd82c6e6ab0391d958c604c/Flask-Mitten-0.2.1.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1ac8311a863b560d441c8e423f05166f", "sha256": "1fed723371796abb9c0678d1566fde643b3c180cc86ca598949566ab72c09892" }, "downloads": -1, "filename": "Flask-Mitten-0.2.1.zip", "has_sig": false, "md5_digest": "1ac8311a863b560d441c8e423f05166f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12175, "upload_time": "2012-03-04T09:37:44", "url": "https://files.pythonhosted.org/packages/37/59/68b7b29da71160fc247904a7c166c7f27ba34cd82c6e6ab0391d958c604c/Flask-Mitten-0.2.1.zip" } ] }