Metadata-Version: 2.0
Name: Flask-GzipBomb
Version: 0.1.0
Summary: Gzip Bomb responses for Flask
Home-page: https://github.com/kuszaj/Flask-GzipBomb
Author: Piotr Kuszaj
Author-email: peterkuszaj@gmail.com
License: MIT
Download-URL: https://github.com/kuszaj/Flask-GzipBomb/archive/v0.1.0.tar.gz
Platform: any
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Dist: Flask

Gzip Bomb responses for Flask.

This package provides an extension to flask.Response class,
**GzipBombResponse**, which can be used as a defensive measure for various
vuln scans, dictionary attacks etc. It creates a response containing a gzipped
data block filled with null characters with varying number of rounds (to
achieve minimal size of response's content).

Example:

    >>> from flask import Flask
    >>> from flask_gzipbomb import GzipBombResponse
    >>>
    >>> app = Flask(__name__)
    >>>
    >>> @app.route('/tiny-bomb')
    ... def gzipped():
    ...     return GzipBombResponse(size='1M')
    >>>
    >>> app.run()

    >>> import gzip
    >>> import requests
    >>>
    >>> r = requests.get('http://localhost:5000/tiny-bomb')
    >>> r.headers['content-encoding']
    'gzip,gzip'
    >>> len(r.content) # gzipped content length in bytes
    64
    >>> data = gzip.decompress(r.content)
    >>> data = gzip.decompress(data)
    >>> len(data) # decompressed content length in bytes
    1048576

GzipBombResponse accepts all arguments accepted by Response class with
additional *size* parameter, describing response content length in bytes
after decompression. Possible values:

    '1k', '10k', '100k', '1M', '10M', '100M', '1G', '10G'

with k, M and G denoting kilobyte, megabyte and gigabyte. Any other value
will result raise a KeyError. By default *size* is set to '10M', however
it is recommended to use '10G' for achieving desired effect.

**This package is for protection and educational purposes only. Using it
for any malicious purpose is strictly prohibited.**


