1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
|
Python SDK to access the `vulnerability database <https://github.com/vulndb/data>`_
.. image:: https://circleci.com/gh/vulndb/python-sdk/tree/master.svg?style=svg
:alt: Build Status
:align: right
:target: https://circleci.com/gh/vulndb/python-sdk/tree/master
Installation
============
It's possible to install `the latest stable release from pypi <https://pypi.python.org/pypi/vulndb>`_:
::
pip install vulndb
Or if you're interested in the latest version from our repository:
::
git clone https://github.com/vulndb/python-sdk.git
python setup.py install
Usage
=====
::
>>> from vulndb import DBVuln
>>> dbv = DBVuln.from_id(42)
>>> dbv.title
'SQL Injection'
>>> dbv.description
'A long and actionable description for SQL injection ...'
>>> dbv.fix_guidance
'Explains the developer how to fix SQL injections, usually a couple of <p> long ...'
>>> dbv.severity
'high'
>>> r = dbv.references[0]
>>> r.url
'http://example.com/sqli-description.html'
>>> r.title
'SQL injection cheat-sheet'
More attributes, methods and helpers are well documented and available in the
`source code <https://github.com/vulndb/python-sdk/blob/master/vulndb/db_vuln.py>`_.
Contributing
============
Send your `pull requests <https://help.github.com/articles/using-pull-requests/>`_
with improvements and bug fixes, making sure that all tests ``PASS``:
::
$ cd python-sdk
$ virtualenv venv
$ . venv/bin/activate
$ pip install -r vulndb/requirements-dev.txt
$ nosetests vulndb/
..........
----------------------------------------------------------------------
Ran 10 tests in 0.355s
OK
Updating the database
=====================
This package embeds the `vulnerability database <https://github.com/vulndb/data>`_
in the ``vulndb/db/`` directory. To update the database with new information
follow these steps:
::
# Update the database
tools/update-db.sh
After updating the database it's a good idea to publish the latest at ``pypi`` using:
::
rm -rf dist/
python setup.py sdist bdist_wheel
twine check dist/*
twine upload dist/*
|