Static Application Security Testing tool for JavaScript
Project description
ARTHEON-SAST
Static Application Security Testing Tool for JavaScript
A powerful, minimalist SAST scanner designed to detect security vulnerabilities in JavaScript code with precision and simplicity.
Features
- 🔍 11 Vulnerability Categories - Detects eval usage, hardcoded secrets, SQL injection, XSS, and more
- 128 Comprehensive Regex Patterns - Covers common security pitfalls
- 📊 Professional HTML Reports - Clean, minimalista design inspired by SonarQube
- ⚡ Fast Scanning - Efficient line-by-line vulnerability detection
- 🎯 No Duplicates - Smart duplicate prevention system
- 📱 Responsive Reports - Works on desktop and mobile devices
Installation
From PyPI
pip install artheon-sast
Development Installation
git clone https://github.com/yourusername/artheon-sast.git
cd artheon-sast
pip install -e .
Usage
Command Line
artheon-sast /path/to/your/project
This will:
- Scan all
.jsfiles in the directory - Detect security vulnerabilities
- Generate an HTML report
- Automatically open the report in your browser
Python API
from language_analyzer import SecurityScanner
scanner = SecurityScanner("/path/to/project")
scanner.scan()
report_path = scanner.generate_html_report()
Vulnerability Categories
| Category | Severity | Examples |
|---|---|---|
| eval() Usage | CRITICAL | eval(userInput) |
| Hardcoded Secrets | CRITICAL | API keys, passwords in code |
| SQL Injection | CRITICAL | Dynamic SQL queries |
| Command Injection | CRITICAL | Shell command execution |
| XSS Vulnerabilities | HIGH | Unsafe HTML injection |
| Insecure Crypto | HIGH | MD5, SHA1 usage |
| Path Traversal | HIGH | Unsafe file path handling |
| Insecure CORS | MEDIUM | Wildcard CORS policies |
| No Input Validation | MEDIUM | Missing parameter checks |
| Prototype Pollution | HIGH | Unsafe object manipulation |
| Insecure Dependencies | MEDIUM | Known vulnerable packages |
Report Format
The tool generates a professional HTML report with:
- Summary Metrics - Total issues, critical, high, and medium severity counts
- File Grouping - Vulnerabilities organized by file
- Context Display - Shows the exact line of code with the vulnerability
- Severity Indicators - Color-coded by severity level
- Responsive Design - Works on all screen sizes
Testing
pytest tests/ -v
All tests pass: ✅ 6/6 tests passing
Requirements
- Python 3.8+
- No external dependencies (uses only stdlib)
Authors
- Dorian Tituaña
- Ismael Toala
License
MIT License - see LICENSE file for details
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Disclaimer
This tool is designed for authorized security testing only. Users are responsible for ensuring they have permission to scan the code they analyze.
Developed with ❤️ for secure code
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file artheon_sast-0.1.0.tar.gz.
File metadata
- Download URL: artheon_sast-0.1.0.tar.gz
- Upload date:
- Size: 12.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f866be7151c9e3f50316cb3defd8443cf97eb1ddca45c57cb28fb738fea5171
|
|
| MD5 |
f500709e5171143661678f01d0fba883
|
|
| BLAKE2b-256 |
700298ba31e814f23baeb947f7d4ce90e66bc4d9a214e4c17f74b47ebfb18331
|
File details
Details for the file artheon_sast-0.1.0-py3-none-any.whl.
File metadata
- Download URL: artheon_sast-0.1.0-py3-none-any.whl
- Upload date:
- Size: 13.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6126bd69ffecf526e60f9705514c46deb278de549f1cfac6c76bb08b6b2c60b5
|
|
| MD5 |
1b3c2a8477d0fb3f88ebcccecc2303b6
|
|
| BLAKE2b-256 |
ecfc25040d73b62fc3a8982d30865377717771d1ae8cee65026a4a044ccdde50
|