codeaudit 1.6.1__tar.gz → 1.6.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {codeaudit-1.6.1 → codeaudit-1.6.2}/CHANGELOG.md +21 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/PKG-INFO +1 -1
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/codeauditcommands.md +8 -8
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/data_egress_implementation.md +1 -1
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/examples/codeauditchecks.html +1 -1
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/examples/demoscan.json +2 -2
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/help.md +1 -1
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/intro.md +6 -11
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/markingissues.md +3 -1
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/sponsors.md +13 -2
- {codeaudit-1.6.1 → codeaudit-1.6.2}/pyproject.toml +4 -0
- codeaudit-1.6.2/src/codeaudit/__about__.py +4 -0
- codeaudit-1.6.2/src/codeaudit/__init__.py +4 -0
- codeaudit-1.6.2/src/codeaudit/altairplots.py +1001 -0
- codeaudit-1.6.2/src/codeaudit/api_helpers.py +285 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/src/codeaudit/api_interfaces.py +150 -90
- {codeaudit-1.6.1 → codeaudit-1.6.2}/src/codeaudit/api_reporting.py +15 -8
- {codeaudit-1.6.1 → codeaudit-1.6.2}/src/codeaudit/checkmodules.py +14 -10
- {codeaudit-1.6.1 → codeaudit-1.6.2}/src/codeaudit/codeaudit.py +45 -23
- {codeaudit-1.6.1 → codeaudit-1.6.2}/src/codeaudit/complexitycheck.py +0 -28
- codeaudit-1.6.2/src/codeaudit/dashboard_reports.py +417 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/src/codeaudit/filehelpfunctions.py +13 -13
- {codeaudit-1.6.1 → codeaudit-1.6.2}/src/codeaudit/htmlhelpfunctions.py +1 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/src/codeaudit/issuevalidations.py +33 -21
- {codeaudit-1.6.1 → codeaudit-1.6.2}/src/codeaudit/privacy_lint.py +73 -40
- {codeaudit-1.6.1 → codeaudit-1.6.2}/src/codeaudit/pypi_package_scan.py +26 -25
- {codeaudit-1.6.1 → codeaudit-1.6.2}/src/codeaudit/reporting.py +402 -299
- {codeaudit-1.6.1 → codeaudit-1.6.2}/src/codeaudit/security_checks.py +20 -18
- {codeaudit-1.6.1 → codeaudit-1.6.2}/src/codeaudit/suppression.py +30 -25
- {codeaudit-1.6.1 → codeaudit-1.6.2}/src/codeaudit/totals.py +18 -19
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/suppression/sastsuppression_1.py +0 -1
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/test_apicalls.py +4 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/test_constructspart2.py +2 -3
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/test_edgecases.py +13 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/test_obfuscatingbuiltins.py +2 -1
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/test_oschecks.py +3 -0
- codeaudit-1.6.2/tests/test_pylintreport.py +136 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/test_subprocess.py +1 -1
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/test_suppression.py +10 -5
- codeaudit-1.6.1/src/codeaudit/__about__.py +0 -4
- codeaudit-1.6.1/src/codeaudit/__init__.py +0 -4
- codeaudit-1.6.1/src/codeaudit/altairplots.py +0 -145
- {codeaudit-1.6.1 → codeaudit-1.6.2}/.gitignore +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/CONTRIBUTE.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/LICENSE.txt +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/README.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/SECURITY.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/CLIcommands.ipynb +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/CONTRIBUTE.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/_config.yml +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/_static/nocxstyle.css +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/_toc.yml +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/about.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/apidocs/api_intro.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/apidocs/codeaudit.rst +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/apidocs/modules.rst +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/architecture.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/astlines.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/astlines2.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/changelog.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/checks/assert_check.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/checks/base64_check.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/checks/binding_check.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/checks/builtinfunctions_check.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/checks/chmod_check.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/checks/directorycreation_check.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/checks/dynamicimport_check.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/checks/exception_check.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/checks/hash_check.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/checks/httpserver_check.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/checks/input_check.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/checks/loggingconf_check.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/checks/marshal_check.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/checks/mktemp_check.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/checks/multiprocessing_check.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/checks/pickle_check.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/checks/random_check.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/checks/shelve_check.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/checks/shutil_check.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/checks/subprocess_check.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/checks/syscalls_check.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/checks/systemcalls_check.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/checks/tarfile_extract_check.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/checks/xml_check.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/checks/zipfile_check.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/checksinformation.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/codeauditchecks.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/codeauditoverview.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/complexitycheck.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/data_exfiltration_detection.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/examples/ca_api_example_basic.ipynb +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/examples/ca_api_example_checks.ipynb +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/examples/ca_api_example_json.ipynb +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/examples/ca_api_example_overview.ipynb +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/examples/ca_api_example_scanning.ipynb +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/examples/ca_checks.ipynb +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/examples/demofile.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/examples/directoryscan.html +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/examples/filescan.html +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/examples/modulescan.html +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/examples/overview.html +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/features.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/filescan.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/filescan.png +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/handling_errors.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/howtoscan.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/images/OO.png +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/images/ROI_logo.png +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/images/YourLogoHere.png +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/images/ai_use.png +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/images/architecture_overview.png +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/images/codeauditlogo.png +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/images/filescan_screenshot_16012026.png +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/images/modulescan_screenshot_16012026.png +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/images/nocxbanner.png +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/images/overview_linkaudit.png +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/images/overview_screenshot_16012026.png +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/implementedvalidations.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/installation.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/issues.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/license.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/makeitbetter.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/modulescan.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/overviewplot.png +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/pca_overview.png +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/project_philosophy.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/securecoding.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/userguide.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/warnings.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/whatissast.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/docs/whysast.md +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/filescan.png +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/src/codeaudit/data/sastchecks.csv +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/src/codeaudit/data/secretslist.txt +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/src/codeaudit/simple.css +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/__init__.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/count_lines_file1.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/spytestdir/clean.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/spytestdir/elastic.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/spytestdir/example1.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/spytestdir/klyne.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/spytestdir/mixed.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/spytestdir/telemetry.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/spytestdir/telemetryfile2.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/suppression/sastsuppression_0.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/suppression/sastsuppression_2.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/test_basicpatterns.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/test_chmod.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/test_correctexceptionuse.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/test_count_commentlines.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/test_directorycreation.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/test_directorycreation2.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/test_hashstrenght.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/test_modulecheck.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/test_pypiscan.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/test_random.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/test_secretfinding.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/test_standardlibconstructs.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/test_suppressionlogic.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/test_totalscheck.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/test_zstd.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/allshit.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/apivalidations.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/assert.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/base64.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/chmod_things.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/complexitycheck.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/correctcounts.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/directorycreation.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/directorycreation2.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/dunderexec_with_parsing_error.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/eval.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/eval2.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/exception.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/file3.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/file_with_warnings.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/gzip.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/hashcheck.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/httpserver.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/inputstatement.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/marshal.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/modulecheck.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/multiprocessing.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/obfuscating.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/oschecks.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/pickle.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/python2_file_willnotwork.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/random.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/shelve.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/shutil.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/subprocess.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/syslibrary.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/tarfilevalidation.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/tempcheck.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/validation1.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/validation2.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/xml.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/zipfile.py +0 -0
- {codeaudit-1.6.1 → codeaudit-1.6.2}/tests/validationfiles/zstd.py +0 -0
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
+
## Version 1.6.2:
|
|
4
|
+
|
|
5
|
+
## Changelog
|
|
6
|
+
|
|
7
|
+
**Added**
|
|
8
|
+
* **Automated Python Testing:** Implemented automation for testing across various Python versions to ensure cross-version compatibility.
|
|
9
|
+
|
|
10
|
+
**Changed**
|
|
11
|
+
|
|
12
|
+
* **Internal Logic Improvements:** Enhanced the `count_privacy_check_results` function to provide more robust egress count testing.
|
|
13
|
+
* **CLI Reporting:** Updated the command-line interface to dynamically toggle between "issue" (singular) and "issues" (plural) based on the findings.
|
|
14
|
+
* **Architecture Refactoring:** Refined internal logic for increased stability and to ensure the codebase is **WASM ready**.
|
|
15
|
+
* **License Standardization:** Updated the **GPLv3** license banner across key Python files for stylistic consistency. (see also issue #4)
|
|
16
|
+
|
|
17
|
+
**Fixed**
|
|
18
|
+
* **Issue #6 (Defensive Coding):** Resolved `KeyError` and syntax error during code snippet creation through more defensive programming practices.
|
|
19
|
+
|
|
20
|
+
**Documentation**
|
|
21
|
+
* Typos fixed and various improvements.
|
|
22
|
+
|
|
23
|
+
|
|
3
24
|
## Version 1.6.1:
|
|
4
25
|
|
|
5
26
|
**Added**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: codeaudit
|
|
3
|
-
Version: 1.6.
|
|
3
|
+
Version: 1.6.2
|
|
4
4
|
Summary: A modern Python security source code analyzer (SAST) based on distrust.
|
|
5
5
|
Project-URL: Documentation, https://github.com/nocomplexity/codeaudit#readme
|
|
6
6
|
Project-URL: Issues, https://github.com/nocomplexity/codeaudit/issues
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
% THIS FILE IS GENERATED! - Use CLIcommands.ipynb to make it better!
|
|
2
2
|
# Commands Overview
|
|
3
|
-
Python Code Audit commands for: version: 1.6.
|
|
3
|
+
Python Code Audit commands for: version: 1.6.2
|
|
4
4
|
```
|
|
5
5
|
----------------------------------------------------
|
|
6
6
|
_ __ _
|
|
@@ -70,7 +70,7 @@ Returns:
|
|
|
70
70
|
Raises:
|
|
71
71
|
SystemExit: If the provided path is not a directory, contains no Python
|
|
72
72
|
files, or is neither a valid local directory nor a valid PyPI
|
|
73
|
-
package name.
|
|
73
|
+
package name.
|
|
74
74
|
str(object='') -> str
|
|
75
75
|
str(bytes_or_buffer[, encoding[, errors]]) -> str
|
|
76
76
|
|
|
@@ -191,7 +191,7 @@ FLAGS
|
|
|
191
191
|
-n, --nosec=NOSEC
|
|
192
192
|
Default: False
|
|
193
193
|
|
|
194
|
-
|
|
194
|
+
|
|
195
195
|
Args:
|
|
196
196
|
|
|
197
197
|
-f, --filename=FILENAME
|
|
@@ -213,7 +213,7 @@ Returns:
|
|
|
213
213
|
None: The function writes a static HTML security report to disk.
|
|
214
214
|
|
|
215
215
|
Raises:
|
|
216
|
-
None: Errors and invalid inputs are reported to stdout.
|
|
216
|
+
None: Errors and invalid inputs are reported to stdout.
|
|
217
217
|
str(object='') -> str
|
|
218
218
|
str(bytes_or_buffer[, encoding[, errors]]) -> str
|
|
219
219
|
|
|
@@ -230,8 +230,8 @@ errors defaults to 'strict'.
|
|
|
230
230
|
|
|
231
231
|
Creates an HTML report of all implemented security checks.
|
|
232
232
|
|
|
233
|
-
This report provides a user-friendly overview of the static security checks
|
|
234
|
-
currently supported by Python Code Audit. It is intended to make it easier to review
|
|
233
|
+
This report provides a user-friendly overview of the static security checks
|
|
234
|
+
currently supported by Python Code Audit. It is intended to make it easier to review
|
|
235
235
|
the available validations without digging through the codebase.
|
|
236
236
|
|
|
237
237
|
The generated HTML includes:
|
|
@@ -240,12 +240,12 @@ The generated HTML includes:
|
|
|
240
240
|
- The version of Python Code Audit (codeaudit) used
|
|
241
241
|
- A disclaimer about version-specific reporting
|
|
242
242
|
|
|
243
|
-
The report is saved to the specified filename and is formatted to be
|
|
243
|
+
The report is saved to the specified filename and is formatted to be
|
|
244
244
|
embeddable in larger multi-report documents.
|
|
245
245
|
|
|
246
246
|
Help me continue developing Python Code Audit as free and open-source software.
|
|
247
247
|
Join the community to contribute to the most complete, local first , Python Security Static scanner.
|
|
248
|
-
Help!! Join the journey, check: https://github.com/nocomplexity/codeaudit#contributing
|
|
248
|
+
Help!! Join the journey, check: https://github.com/nocomplexity/codeaudit#contributing
|
|
249
249
|
|
|
250
250
|
|
|
251
251
|
Parameters:
|
|
@@ -11,7 +11,7 @@ No single technique can detect telemetry or data exfiltration with 100% accuracy
|
|
|
11
11
|
|
|
12
12
|
## Detection Approaches
|
|
13
13
|
|
|
14
|
-
Common techniques for detecting potential data exfiltration
|
|
14
|
+
Common techniques for detecting potential data exfiltration in Python code are:
|
|
15
15
|
|
|
16
16
|
* Entropy analysis – Detects high-entropy strings that may represent API keys or tokens.
|
|
17
17
|
|
|
@@ -738,4 +738,4 @@ footer {
|
|
|
738
738
|
<td>Vulnerable to path traversal attacks if used with untrusted archives.</td>
|
|
739
739
|
</tr>
|
|
740
740
|
</tbody>
|
|
741
|
-
</table><br><p>Number of implemented security validations:<b>83</b></p><p>Version of codeaudit: <b>1.6.
|
|
741
|
+
</table><br><p>Number of implemented security validations:<b>83</b></p><p>Version of codeaudit: <b>1.6.2</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-08 10:10</b> with <a href="https://github.com/nocomplexity/codeaudit" target="_blank"><b>Python Code Audit</b></a> version <b>1.6.2</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">❤</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>
|
|
@@ -42,7 +42,7 @@ You should carefully evaluate all reported weaknesses.
|
|
|
42
42
|
|
|
43
43
|
Not every issue requires fixing; depending on your program and the environment in which it operates, **some detected weaknesses may not be relevant**.
|
|
44
44
|
|
|
45
|
-
However, it is important to document your decisions and inform your users about the design choices you have made and the rationale behind them.
|
|
45
|
+
However, it is important to document your decisions and inform your users about the design choices you have made and the rationale behind them. Minimal [place markers in your code](markingissues). But also document your architecture and design decisions regarding security.
|
|
46
46
|
:::
|
|
47
47
|
|
|
48
48
|
* Send me a line that you use this tool within your company.
|
|
@@ -77,11 +77,13 @@ Contribute and Join the team!
|
|
|
77
77
|
%end grid
|
|
78
78
|
|
|
79
79
|
|
|
80
|
-
:::{
|
|
81
|
-
|
|
80
|
+
:::{admonition} Python programs are not immune to cybersecurity threats.
|
|
81
|
+
:class: danger
|
|
82
|
+
Validating Python code for **security weaknesses** is essential, whether you are writing your own programs or relying on third-party applications.
|
|
82
83
|
:::
|
|
83
84
|
|
|
84
85
|
|
|
86
|
+
|
|
85
87
|
**Python Code Audit** offers a powerful yet straightforward security solution:
|
|
86
88
|
|
|
87
89
|
* **Ease of Use**: Simple to operate for quick audits.
|
|
@@ -90,14 +92,9 @@ A **security weakness** in Python code is an implementation flaw that could pote
|
|
|
90
92
|
|
|
91
93
|
* **Impactful Analysis**: Powerful detection of security weaknesses that have the potential to become critical vulnerabilities.
|
|
92
94
|
|
|
95
|
+
Enjoying **Python Code Audit**? Support us with a [GitHub star](https://github.com/nocomplexity/codeaudit)! It’s a simple way to help others find us and contributes to a more secure Python ecosystem. ⭐️
|
|
93
96
|
|
|
94
97
|
|
|
95
|
-
:::{warning}
|
|
96
|
-
**Python Code Audit** gives you insight into potential security issues in your Python programs.
|
|
97
|
-
|
|
98
|
-
*Are you ready to discover what's lurking in your Python code?*
|
|
99
|
-
|
|
100
|
-
:::
|
|
101
98
|
|
|
102
99
|
## Features
|
|
103
100
|
|
|
@@ -135,10 +132,8 @@ A **security weakness** in Python code is an implementation flaw that could pote
|
|
|
135
132
|
## Background
|
|
136
133
|
|
|
137
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.
|
|
135
|
+
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/).
|
|
138
136
|
|
|
139
|
-
:::{hint}
|
|
140
|
-
[To keep up with current threats, you need a Python Application Security Testing tool that evolves to deliver deeper insights and higher accuracy.](https://nocomplexity.com/stop-using-bandit/)
|
|
141
|
-
:::
|
|
142
137
|
|
|
143
138
|
|
|
144
139
|
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
# Marking False Positives
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
:::{hint}
|
|
5
|
+
**Python Code Audit** enables you to flag identified security weaknesses for exclusion from future Static Application Security Testing (SAST) scans.
|
|
6
|
+
:::
|
|
5
7
|
|
|
6
8
|
## When to Use This Feature
|
|
7
9
|
Only suppress a finding if one of the following conditions is met:
|
|
@@ -1,8 +1,19 @@
|
|
|
1
1
|
# Sponsors
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
|
|
4
|
+
:::{admonition} Sponsor this project with a donation
|
|
5
|
+
:class: tip
|
|
6
|
+
Python Code Audit – Modern Python security analysis rooted in distrust.
|
|
7
|
+
|
|
8
|
+
```{button-link} https://buy.stripe.com/5kQ6oH3dm4RO1ujaOUgbm02
|
|
9
|
+
:color: danger
|
|
10
|
+
Make A Donation
|
|
11
|
+
```
|
|
12
|
+
:::
|
|
13
|
+
|
|
14
|
+
Beyond making a one-off donation, there are opportunities to become a sponsor for this project. Our sponsorship options include:
|
|
4
15
|
* Your logo and some text about your company in this manual.
|
|
5
|
-
* Your advertisement for a
|
|
16
|
+
* Your advertisement for a cybersecurity vacancy in our frequently published [Open Security News Overview](https://nocomplexity.com/open-security-news/).
|
|
6
17
|
* Your logo in one or more [NO|Complexity Playbooks](about).
|
|
7
18
|
|
|
8
19
|
|
|
@@ -52,6 +52,10 @@ extra-dependencies = [
|
|
|
52
52
|
[tool.hatch.envs.types.scripts]
|
|
53
53
|
check = "mypy --install-types --non-interactive {args:src/codeaudit tests}"
|
|
54
54
|
|
|
55
|
+
[[tool.hatch.envs.hatch-test.matrix]]
|
|
56
|
+
python = ["3.14","3.13","3.12", "3.11"]
|
|
57
|
+
|
|
58
|
+
|
|
55
59
|
[tool.coverage.run]
|
|
56
60
|
source_pkgs = ["codeaudit", "tests"]
|
|
57
61
|
branch = true
|