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>
1.2 KiB
1.2 KiB
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.