bandit.formatters package

Submodules

bandit.formatters.csv module

CSV Formatter

This formatter outputs the issues in a comma separated values format.

Example:
filename,test_name,test_id,issue_severity,issue_confidence,issue_text,
line_number,line_range
examples/yaml_load.py,blacklist_calls,B301,MEDIUM,HIGH,"Use of unsafe yaml
load. Allows instantiation of arbitrary objects. Consider yaml.safe_load().
",5,[5]

New in version 0.11.0.

bandit.formatters.csv.report(manager, fileobj, sev_level, conf_level, lines=-1)

Prints issues in CSV format

Parameters:
  • manager – the bandit manager object
  • fileobj – The output file object, which may be sys.stdout
  • sev_level – Filtering severity level
  • conf_level – Filtering confidence level
  • lines – Number of lines to report, -1 for all

bandit.formatters.html module

HTML formatter

This formatter outputs the issues as HTML.

Example:
<!DOCTYPE html>
<html>
<head>

<title>
    Bandit Report
</title>

<style>

html * {
    font-family: "Arial", sans-serif;
}

pre {
    font-family: "Monaco", monospace;
}

.bordered-box {
    border: 1px solid black;
    padding-top:.5em;
    padding-bottom:.5em;
    padding-left:1em;

}

.metrics-box {
    font-size: 1.1em;
    line-height: 130%;
}

.metrics-title {
    font-size: 1.5em;
    font-weight: 500;
    margin-bottom: .25em;
}

.issue-description {
    font-size: 1.3em;
    font-weight: 500;
}

.candidate-issues {
    margin-left: 2em;
    border-left: solid 1px; LightGray;
    padding-left: 5%;
    margin-top: .2em;
    margin-bottom: .2em;
}

.issue-block {
    border: 1px solid LightGray;
    padding-left: .5em;
    padding-top: .5em;
    padding-bottom: .5em;
    margin-bottom: .5em;
}

.issue-sev-high {
    background-color: Pink;
}

.issue-sev-medium {
    background-color: NavajoWhite;
}

.issue-sev-low {
    background-color: LightCyan;
}

</style>
</head>

<body>

<span id='metrics'>
    <div class='metrics-box bordered-box'>
        <div class='metrics-title'>
            Metrics:<br>
        </div>
        Total lines of code: <span id='loc'>5</span><br>
        Total lines skipped (#nosec): <span id='nosec'>0</span>
    </div>
</span>




<br>
<span id='results'>

<span id='issue-0'>
<div class='issue-block issue-sev-medium'>
    <b>blacklist_calls: </b> Use of unsafe yaml load. Allows instantiation
    of arbitrary objects. Consider yaml.safe_load().
<br>
    <b>Test ID: </b>B301<br />
    <b>Severity: </b>MEDIUM<br />
    <b>Confidence: </b>HIGH</br />
    <b>File: </b><a href='examples/yaml_load.py' target='_blank'>
    examples/yaml_load.py</a> <br />

<span id='code'>
<pre>
4       ystr = yaml.dump({'a' : 1, 'b' : 2, 'c' : 3})
5       y = yaml.load(ystr)
6       yaml.dump(y)
</pre>
</span>

</div>
</span>

</span>

</body>
</html>

New in version 0.14.0.

bandit.formatters.html.report(manager, fileobj, sev_level, conf_level, lines=-1)

Writes issues to ‘fileobj’ in HTML format

Parameters:
  • manager – the bandit manager object
  • fileobj – The output file object, which may be sys.stdout
  • sev_level – Filtering severity level
  • conf_level – Filtering confidence level
  • lines – Number of lines to report, -1 for all

bandit.formatters.json module

JSON formatter

This formatter outputs the issues in JSON.

Example:
{
  "errors": [],
  "generated_at": "2015-12-16T22:27:34Z",
  "metrics": {
    "_totals": {
      "CONFIDENCE.HIGH": 1,
      "CONFIDENCE.LOW": 0,
      "CONFIDENCE.MEDIUM": 0,
      "CONFIDENCE.UNDEFINED": 0,
      "SEVERITY.HIGH": 0,
      "SEVERITY.LOW": 0,
      "SEVERITY.MEDIUM": 1,
      "SEVERITY.UNDEFINED": 0,
      "loc": 5,
      "nosec": 0
    },
    "examples/yaml_load.py": {
      "CONFIDENCE.HIGH": 1,
      "CONFIDENCE.LOW": 0,
      "CONFIDENCE.MEDIUM": 0,
      "CONFIDENCE.UNDEFINED": 0,
      "SEVERITY.HIGH": 0,
      "SEVERITY.LOW": 0,
      "SEVERITY.MEDIUM": 1,
      "SEVERITY.UNDEFINED": 0,
      "loc": 5,
      "nosec": 0
    }
  },
  "results": [
    {
      "code": "4     ystr = yaml.dump({'a' : 1, 'b' : 2, 'c' : 3})\n5
                     y = yaml.load(ystr)\n6     yaml.dump(y)\n",
      "filename": "examples/yaml_load.py",
      "issue_confidence": "HIGH",
      "issue_severity": "MEDIUM",
      "issue_text": "Use of unsafe yaml load. Allows instantiation of
                     arbitrary objects. Consider yaml.safe_load().\n",
      "line_number": 5,
      "line_range": [
        5
      ],
      "test_name": "blacklist_calls",
      "test_id": "B301"
    }
  ],
  "stats": [
    {
      "filename": "examples/yaml_load.py",
      "issue totals": {
        "HIGH": 0,
        "LOW": 0,
        "MEDIUM": 1,
        "UNDEFINED": 0
      },
      "score": {
        "CONFIDENCE": 10,
        "SEVERITY": 5
      }
    }
  ]
}

New in version 0.10.0.

bandit.formatters.json.report(manager, fileobj, sev_level, conf_level, lines=-1)

‘’Prints issues in JSON format

Parameters:
  • manager – the bandit manager object
  • fileobj – The output file object, which may be sys.stdout
  • sev_level – Filtering severity level
  • conf_level – Filtering confidence level
  • lines – Number of lines to report, -1 for all

bandit.formatters.screen module

Screen formatter

This formatter outputs the issues as color coded text.

Example:
>> Issue: [B301:blacklist_calls] Use of unsafe yaml load. Allows
   instantiation of arbitrary objects. Consider yaml.safe_load().

   Severity: Medium   Confidence: High
   Location: examples/yaml_load.py:5
4       ystr = yaml.dump({'a' : 1, 'b' : 2, 'c' : 3})
5       y = yaml.load(ystr)
6       yaml.dump(y)

New in version 0.9.0.

bandit.formatters.screen.do_print(bits)
bandit.formatters.screen.get_metrics(manager)
bandit.formatters.screen.get_results(manager, sev_level, conf_level, lines)
bandit.formatters.screen.get_verbose_details(manager)
bandit.formatters.screen.header(text, *args)
bandit.formatters.screen.report(manager, fileobj, sev_level, conf_level, lines=-1)

Prints discovered issues formatted for screen reading

This makes use of VT100 terminal codes for colored text.

Parameters:
  • manager – the bandit manager object
  • fileobj – The output file object, which may be sys.stdout
  • sev_level – Filtering severity level
  • conf_level – Filtering confidence level
  • lines – Number of lines to report, -1 for all

bandit.formatters.text module

Text Formatter

This formatter outputs the issues as plain text.

Example:
>> Issue: [B301:blacklist_calls] Use of unsafe yaml load. Allows
   instantiation of arbitrary objects. Consider yaml.safe_load().

   Severity: Medium   Confidence: High
   Location: examples/yaml_load.py:5
4       ystr = yaml.dump({'a' : 1, 'b' : 2, 'c' : 3})
5       y = yaml.load(ystr)
6       yaml.dump(y)

New in version 0.9.0.

bandit.formatters.text.get_metrics(manager)
bandit.formatters.text.get_results(manager, sev_level, conf_level, lines)
bandit.formatters.text.get_verbose_details(manager)
bandit.formatters.text.report(manager, fileobj, sev_level, conf_level, lines=-1)

Prints discovered issues in the text format

Parameters:
  • manager – the bandit manager object
  • fileobj – The output file object, which may be sys.stdout
  • sev_level – Filtering severity level
  • conf_level – Filtering confidence level
  • lines – Number of lines to report, -1 for all

bandit.formatters.xml module

XML Formatter

This formatter outputs the issues as XML.

Example:
<?xml version='1.0' encoding='utf-8'?>
<testsuite name="bandit" tests="1"><testcase
classname="examples/yaml_load.py" name="blacklist_calls"><error
message="Use of unsafe yaml load. Allows instantiation of arbitrary
objects. Consider yaml.safe_load().&#10;" type="MEDIUM">Test ID: B301
Severity: MEDIUM Confidence: HIGH Use of unsafe yaml load. Allows
instantiation of arbitrary objects. Consider yaml.safe_load().

Location examples/yaml_load.py:5</error></testcase></testsuite>

New in version 0.12.0.

bandit.formatters.xml.report(manager, fileobj, sev_level, conf_level, lines=-1)

Prints issues in XML format

Parameters:
  • manager – the bandit manager object
  • fileobj – The output file object, which may be sys.stdout
  • sev_level – Filtering severity level
  • conf_level – Filtering confidence level
  • lines – Number of lines to report, -1 for all

Module contents