aprs.me/.kiro/steering/product.md
Graham McIntire 94f3a62539
Add comprehensive input sanitization for coordinate parsing
Security improvements:
- Added sanitize_numeric_string to remove dangerous characters
- Limited input string length to prevent DoS attacks (20 chars for numbers)
- Added is_finite? checks to prevent infinity/NaN values
- Validate coordinate ranges (lat: -90 to 90, lng: -180 to 180)
- Added safe_parse_coordinate with proper validation
- Updated to_float in EncodingUtils with security validations
- Protected against integer overflow in coordinate conversions
- Added sanitize_path_string for APRS path validation

All coordinate inputs from users are now:
1. Sanitized to remove injection characters
2. Length-limited to prevent resource exhaustion
3. Validated for finite values (no infinity/NaN)
4. Checked against valid geographic ranges
5. Given safe fallback defaults

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-14 10:20:10 -05:00

18 lines
1.2 KiB
Markdown

# Product Overview
Aprsme is an APRS (Automatic Packet Reporting System) web application that provides real-time tracking and visualization of amateur radio packets. The application connects to APRS-IS servers to receive and process amateur radio position reports, weather data, and other telemetry.
## Core Features
- **Real-time Map Visualization**: Interactive map showing APRS stations and their positions
- **Packet Processing**: Ingests and processes APRS packets from APRS-IS network
- **Station Information**: Detailed views of individual callsigns and their activity
- **Weather Data**: Weather station reporting and visualization
- **Bad Packet Analysis**: Monitoring and analysis of malformed packets
- **Multi-language Support**: Internationalization with English, Spanish, German, and French
- **User Authentication**: User accounts and session management
- **API Access**: RESTful API for programmatic access to data
## Technical Architecture
The application uses a GenStage-based packet processing pipeline to handle high-volume APRS data streams, with PostgreSQL for persistence and Phoenix LiveView for real-time web interfaces. Background job processing is handled by Oban for maintenance tasks like packet cleanup.