Research
Security News
Malicious npm Package Targets Solana Developers and Hijacks Funds
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
flake8-secure-coding-standard
Advanced tools
Flake8 plugin adding some checks to make Python code adhere to more secure coding standard
flake8 plugin that enforces some secure coding standards.
pip install flake8-secure-coding-standard
Code | Description |
---|---|
SCS100 | Use of os.path.abspath() and os.path.relpath() should be avoided in favor of os.path.realpath() |
SCS101 | Use of eval() and exec() represent a security risk and should be avoided |
SCS102 | Use of os.system() should be avoided |
SCS103 | Use of shell=True in subprocess functions or use of functions that internally set this should be avoided |
SCS104 | Use of tempfile.mktemp() should be avoided, prefer tempfile.mkstemp() |
SCS105 | Use of yaml.load() should be avoided, prefer yaml.safe_load() or yaml.load(xxx, Loader=SafeLoader) |
SCS106 | Use of jsonpickle.decode() should be avoided |
SCS107 | Use of debugging code should not be present in production code (e.g. import pdb ) |
SCS108 | assert statements should not be present in production code |
SCS109 | Use of builtin open for writing is discouraged in favor of os.open to allow for setting file permissions |
SCS110 | Avoid using os.popen() as it internally uses subprocess.Popen with shell=True |
SCS111 | Use of shlex.quote() should be avoided on non-POSIX platforms |
SCS112 | Avoid using os.open() with unsafe file permissions |
SCS113 | Avoid using pickle.load() and pickle.loads() |
SCS114 | Avoid using marshal.load() and marshal.loads() |
SCS115 | Avoid using shelve.open() |
SCS116 | Avoid using os.mkdir and os.makedirs with unsafe file permissions |
SCS117 | Avoid using os.mkfifo with unsafe file permissions |
SCS118 | Avoid using os.mknod with unsafe file permissions |
SCS119 | Avoid using os.chmod with unsafe file permissions (W ^ X for group and others) |
This plugin supports some configuration options that may either be specified directly on the command line with a flag
using the option name as --name
or by specifying them in one of flake8's configuration files (ie. pyproject.toml
,
setup.cfg
, .flake8
, etc.).
Available options:
Option name | Option type | Default value | Related error code |
---|---|---|---|
os-open-mode | mode-like | 0 (off) | SCS112 |
os-mkdir-mode | mode-like | 0 (off) | SCS116 |
os-mkfifo-mode | mode-like | 0 (off) | SCS117 |
os-mknod-mode | mode-like | 0 (off) | SCS118 |
Mode-like options are configuration options for errors/warnings that relate to some function that accepts a mode
parameter (or similar) that control some file or directory permissions. For those kind of options, the plugin
understands a variety of values that must be specified as string
. They will then be parsed into a list of allowed mode
values:
0o755
Example of values (for pyproject.toml
):
[tool.flake8]
os-open-mode = '0' # check disabled
os-open-mode = 'no' # check disabled
os-open-mode = '493' # all modes from 0 to 493 (=0o755)
os-open-mode = '0o755' # all modes from 0 to 0o755
os-open-mode = '0o755,' # only 0o755 (notice the comma)
os-open-mode = '0o644,0o755' # only 0o644 and 0o755
You can also specify those options directly on the command line:
python3 -m flake8 --os-open-mode='0o755'
See pre-commit for instructions
Sample .pre-commit-config.yaml
:
- repo: https://github.com/PyCQA/flake8
rev: 4.0.0
hooks:
- id: flake8
additional_dependencies: [flake8-secure-coding-standard]
FAQs
Flake8 plugin adding some checks to make Python code adhere to more secure coding standard
We found that flake8-secure-coding-standard demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.