Skip to content

Commit 24fa036

Browse files
committed
version 1.6.5 - see change log for changes and updates
1 parent ef6b92f commit 24fa036

23 files changed

Lines changed: 155 additions & 127 deletions

CHANGELOG.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,30 @@
11
# Change Log
22

3+
## Version 1.6.5:
4+
5+
6+
**Added:**
7+
8+
* **Plain FTP Validation:** Introduced a new validation check to detect the use of plain FTP. Using FTP in modern Python applications is considered a significant security risk (red flag).
9+
10+
**Changed:**
11+
12+
* **Version Retrieval:** Reverted the change that retrieved package versions from PyPI (originally introduced in PR #16) due to compatibility issues with WASM.
13+
* **CI/CD Configuration:** Updated `pyproject.toml` to enhance GitHub Actions testing workflows. (Credit: @jurgenwigg)
14+
15+
**Fixed:**
16+
17+
* **Docstring Improvements:** Enhanced and refined docstrings across the Altair APIs for better clarity and developer experience.
18+
19+
**Documentation:**
20+
21+
* **Manual Update:** Substantial improvements to the user manual, including a new section dedicated to integrating and using Python security validation tools.
22+
23+
## Version 1.6.4:
24+
25+
Fixed:
26+
- Dashboard Reporting: Resolved issue affecting dashboard rendering and data output within the Panel / WASM (WebAssembly) environment.
27+
328

429
## Version 1.6.3:
530

docs/CLIcommands.ipynb

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,17 @@
1313
},
1414
{
1515
"cell_type": "code",
16-
"execution_count": 9,
16+
"execution_count": 1,
1717
"id": "923aba22-7103-4431-8545-ee5596efa371",
1818
"metadata": {},
1919
"outputs": [],
2020
"source": [
21-
"from codeaudit import codeaudit"
21+
"from codeaudit import corecli"
2222
]
2323
},
2424
{
2525
"cell_type": "code",
26-
"execution_count": 10,
26+
"execution_count": 2,
2727
"id": "057c9730-7b09-49a8-82f1-bc681d880c96",
2828
"metadata": {},
2929
"outputs": [],
@@ -33,18 +33,18 @@
3333
},
3434
{
3535
"cell_type": "code",
36-
"execution_count": 11,
36+
"execution_count": 3,
3737
"id": "67576531-b66f-42a3-b6e4-460423ca28e0",
3838
"metadata": {},
3939
"outputs": [],
4040
"source": [
4141
"%%capture version --no-display\n",
42-
"codeaudit.display_version()"
42+
"corecli.display_version()"
4343
]
4444
},
4545
{
4646
"cell_type": "code",
47-
"execution_count": 12,
47+
"execution_count": 4,
4848
"id": "2717fe66-9e66-4fcc-ae82-0d1ba26892c4",
4949
"metadata": {},
5050
"outputs": [],
@@ -54,7 +54,7 @@
5454
},
5555
{
5656
"cell_type": "code",
57-
"execution_count": 13,
57+
"execution_count": 5,
5858
"id": "3f286724-0a8f-45b2-80fe-d6d061fe440a",
5959
"metadata": {},
6060
"outputs": [],
@@ -66,18 +66,18 @@
6666
},
6767
{
6868
"cell_type": "code",
69-
"execution_count": 14,
69+
"execution_count": 6,
7070
"id": "693c3354-530b-4a40-a561-ed722d9bb1fa",
7171
"metadata": {},
7272
"outputs": [],
7373
"source": [
7474
"%%capture helpoutput --no-display\n",
75-
"codeaudit.display_help()"
75+
"corecli.display_help()"
7676
]
7777
},
7878
{
7979
"cell_type": "code",
80-
"execution_count": 15,
80+
"execution_count": 7,
8181
"id": "5fa9a420-bd9a-4641-99c9-de0bcf448dbc",
8282
"metadata": {},
8383
"outputs": [],
@@ -90,7 +90,7 @@
9090
},
9191
{
9292
"cell_type": "code",
93-
"execution_count": null,
93+
"execution_count": 8,
9494
"id": "bf6afe56-e0f7-4fa2-a3a5-968bad11bf9c",
9595
"metadata": {},
9696
"outputs": [],
@@ -104,16 +104,15 @@
104104
" output += f'## codeaudit {key}\\n' # newlines matter when creating markdown\n",
105105
" output += '```text\\n' # raw display \n",
106106
" func_name = value\n",
107-
" output += getattr(codeaudit, func_name).__doc__\n",
108-
" #print(func_name.__doc__) \n",
107+
" output += getattr(corecli, func_name).__doc__ \n",
109108
" output += func_name.__doc__ \n",
110109
" output += '\\n' # newlines matter when creating markdown\n",
111110
" output += '```\\n' "
112111
]
113112
},
114113
{
115114
"cell_type": "code",
116-
"execution_count": 17,
115+
"execution_count": 9,
117116
"id": "0335783c-7676-4099-94c5-c98cc8f2f205",
118117
"metadata": {
119118
"editable": true,
@@ -134,7 +133,7 @@
134133
},
135134
{
136135
"cell_type": "code",
137-
"execution_count": 18,
136+
"execution_count": 10,
138137
"id": "4667d7ec-3727-4e2d-97b5-6f597c697ec7",
139138
"metadata": {},
140139
"outputs": [],
@@ -167,7 +166,7 @@
167166
"name": "python",
168167
"nbconvert_exporter": "python",
169168
"pygments_lexer": "ipython3",
170-
"version": "3.13.11"
169+
"version": "3.14.4"
171170
}
172171
},
173172
"nbformat": 4,

docs/about.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ Use this Playbook to create better and faster security solutions for your securi
2828
:::
2929

3030
:::{grid-item-card}
31-
:link: https://nocomplexity.com/documents/securitybydesign/intro.html
31+
:link: http://securitybydesign.nocomplexity.com/
3232
:link-type: url
3333
{octicon}`book;2em;caption-text` **Security By Design**
3434
^^^

docs/apidocs/modules.rst

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
API Reference
2-
==============
1+
API Reference
2+
=============
3+
34

45
.. toctree::
56
:maxdepth: 4

docs/codeauditcommands.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
% THIS FILE IS GENERATED! - Use CLIcommands.ipynb to make it better!
22
# Commands Overview
3-
Python Code Audit commands for: version: 1.6.3.dev39+ga990bb23a.d20260411
3+
Python Code Audit commands for: version: 1.6.5rc4
44
```
55
----------------------------------------------------
66
_ __ _

docs/examples/ca_checks.ipynb

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,11 @@
55
"id": "67936457-a2c4-40e3-bf53-93c8b5186fb6",
66
"metadata": {},
77
"source": [
8-
"# Python Code Audit Implemented validations"
9-
]
10-
},
11-
{
12-
"cell_type": "code",
13-
"execution_count": 1,
14-
"id": "d930de74-74c9-457a-b46e-a444ccb941c3",
15-
"metadata": {},
16-
"outputs": [],
17-
"source": [
18-
"from codeaudit import codeaudit"
8+
"# Python Code Audit Implemented validations\n",
9+
"\n",
10+
"Notebook which result is incorporated in the Python Code Audit manual.\n",
11+
"\n",
12+
"This notebook serves as the primary source for the Python Code Audit Manual. By integrating these results directly into the documentation, we ensure the manual remains technically accurate and reflects the most current validation data.\n"
1913
]
2014
},
2115
{
@@ -45,7 +39,7 @@
4539
"name": "python",
4640
"nbconvert_exporter": "python",
4741
"pygments_lexer": "ipython3",
48-
"version": "3.13.11"
42+
"version": "3.14.4"
4943
}
5044
},
5145
"nbformat": 4,

docs/examples/codeauditchecks.html

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,12 @@
311311
<td>High</td>
312312
<td>This function can execute arbitrary code and should be used only with validated constructs.</td>
313313
</tr>
314+
<tr>
315+
<td>Insecure FTP use</td>
316+
<td>ftplib.FTP</td>
317+
<td>High</td>
318+
<td>Never use this. Sends usernames and passwords in plain text and transfers data unencrypted.</td>
319+
</tr>
314320
<tr>
315321
<td>Gzip File Handling</td>
316322
<td>gzip.open</td>
@@ -738,4 +744,4 @@
738744
<td>Vulnerable to path traversal attacks if used with untrusted archives.</td>
739745
</tr>
740746
</tbody>
741-
</table><br><p>Number of implemented security validations:<b>83</b></p><p>Version of codeaudit: <b>1.6.3.dev39+ga990bb23a.d20260411</b><p>Because Python and cybersecurity are constantly changing, issue reports <b>SHOULD</b> specify the codeaudit version used.</p><p><b>Disclaimer:</b> <i>This SAST tool <a href="https://github.com/nocomplexity/codeaudit" target="_blank"><b>Python Code Audit</b></a> provides a powerful, automatic security analysis for Python source code. However, it's not a substitute for human review in combination with business knowledge. Undetected vulnerabilities may still exist.</i></p><p>This Python security report was created on: <b>2026-04-20 17:38</b> with <a href="https://github.com/nocomplexity/codeaudit" target="_blank"><b>Python Code Audit</b></a> version <b>1.6.3.dev39+ga990bb23a.d20260411</b></p><hr><footer><div class="footer-links">Check the <a href="https://nocomplexity.com/documents/codeaudit/intro.html" target="_blank">documentation</a> for help on found issues.<br>Codeaudit is made with <span class="heart">&#10084;</span> by cyber security professionals who advocate for <a href="https://nocomplexity.com/simplify-security/" target="_blank">open simple security solutions</a>.<br><a href="https://nocomplexity.com/documents/codeaudit/CONTRIBUTE.html" target="_blank">Join the community</a> and contribute to make this tool better!</div></footer></div></body></html>
747+
</table><br><p>Number of implemented security validations:<b>84</b></p><p>Version of codeaudit: <b>1.6.5rc4</b><p>Because Python and cybersecurity are constantly changing, issue reports <b>SHOULD</b> specify the codeaudit version used.</p><p><b>Disclaimer:</b> <i>This SAST tool <a href="https://github.com/nocomplexity/codeaudit" target="_blank"><b>Python Code Audit</b></a> provides a powerful, automatic security analysis for Python source code. However, it's not a substitute for human review in combination with business knowledge. Undetected vulnerabilities may still exist.</i></p><p>This Python security report was created on: <b>2026-05-11 16:12</b> with <a href="https://github.com/nocomplexity/codeaudit" target="_blank"><b>Python Code Audit</b></a> version <b>1.6.5rc4</b></p><hr><footer><div class="footer-links">Check the <a href="https://nocomplexity.com/documents/codeaudit/intro.html" target="_blank">documentation</a> for help on found issues.<br>Codeaudit is made with <span class="heart">&#10084;</span> by cyber security professionals who advocate for <a href="https://nocomplexity.com/simplify-security/" target="_blank">open simple security solutions</a>.<br><a href="https://nocomplexity.com/documents/codeaudit/CONTRIBUTE.html" target="_blank">Join the community</a> and contribute to make this tool better!</div></footer></div></body></html>

docs/examples/demoscan.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "Python_Code_Audit",
3-
"version": "1.6.5rc3",
4-
"generated_on": "2026-05-02 14:26",
3+
"version": "1.6.5rc4",
4+
"generated_on": "2026-05-11 16:12",
55
"file_security_info": {
66
"0": {
77
"FileName": "demofile.py",

docs/intro.md

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
In the Getting Started section you can find installation instructions and a high-level overview of the main concepts.
2222
+++
2323
```{button-ref} installation
24-
:link-type: ref
2524
:color: danger
2625
Quick Start Guide
2726
```
@@ -33,7 +32,6 @@ Quick Start Guide
3332
Check out the User Guides for in-depth information on the key concepts of Python Code Audit.
3433
+++
3534
```{button-ref} userguide
36-
:link-type: ref
3735
:color: danger
3836
User Guide
3937
```
@@ -53,7 +51,6 @@ The API reference guide contains detailed information on all methods to create y
5351

5452
+++
5553
```{button-ref} apidocs/modules
56-
:link-type: ref
5754
:color: danger
5855
API Reference
5956
```
@@ -67,7 +64,6 @@ The contributing guidelines will guide you!
6764

6865
+++
6966
```{button-ref} CONTRIBUTE
70-
:link-type: ref
7167
:color: danger
7268
Contribute and Join the team!
7369
```
@@ -131,7 +127,7 @@ Enjoying **Python Code Audit**? Support us with a [GitHub star](https://github.c
131127

132128
## Background
133129

134-
The availability of good, maintained FOSS SAST tools for Python is limited. While Bandit is a known tool, its usefulness is significantly limited: it struggles to identify a broad range of security weaknesses and fails to perform many crucial Python security validations. Additionally, its Command Line Interface (CLI) can present a steep learning curve for non-technical users.
130+
The availability of well-maintained, open source SAST tools for Python is limited. While Bandit is a known tool, its usefulness is significantly limited. It struggles to identify a broad range of security weaknesses and fails to perform many crucial Python security validations based on modules from the Python Standard Library. Additionally, its Command Line Interface (CLI) can present a steep learning curve for non-technical users.
135131
To keep up with current threats, you need a Python Application Security Testing tool that evolves to deliver deeper insights and [high accuracy](https://nocomplexity.com/stop-using-bandit/).
136132

137133

@@ -140,7 +136,7 @@ To keep up with current threats, you need a Python Application Security Testing
140136
:::{note}
141137
This `Python Code Audit` tool is built to be fast, lightweight, and easy to use.
142138

143-
By default, the tool scans Python code against more than **83 rules** to detect potential security vulnerabilities. These rules target unsafe constructs of the standard Python libraries that could pose a security risk.
139+
By default, the tool scans Python code against more than **84 rules** to detect potential security vulnerabilities. These rules target unsafe constructs of the standard Python libraries that could pose a security risk.
144140

145141
:::
146142

docs/makeitbetter.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Great that you’re here at this section and want to contribute with code improv
66

77
:::{admonition} Be sure to check out our Code of Conduct
88
:class: note
9-
This project values respect and inclusiveness, and enforces a [Code of Conduct](CONTRIBUTE.md#code-of-conduct) in all interactions. This to ensure that our online spaces are enjoyable, inclusive, and productive for all contributors.
9+
This project values respect and inclusiveness, and enforces a [Code of Conduct](CoC-label) in all interactions. This to ensure that our online spaces are enjoyable, inclusive, and productive for all contributors.
1010

1111

1212
We adopt the [Collective Code Construction Contract(C4)](https://rfc.zeromq.org/spec/42/) to streamline collaboration. C4 is meant to provide a reusable optimal collaboration model for open source software projects.

0 commit comments

Comments
 (0)