- Supported Versions
- Reporting a Vulnerability
- Scope and attack surface
- Threat model and mitigations
- Preferred Languages
- Contact
- Release security checklist (12.4.1)
| Version | Supported |
|---|---|
| 1.x | ✅ |
We take the security of Phone Input Bundle seriously. If you believe you have found a security vulnerability, please report it to us as described below.
Please do not report security vulnerabilities through public GitHub issues.
Instead, please send an email to: hectorfranco@nowo.tech
Include the following information in your report:
- Type of issue (e.g., buffer overflow, SQL injection, cross-site scripting, etc.)
- Full paths of source file(s) related to the issue
- The location of the affected source code (tag/branch/commit or direct URL)
- Any special configuration required to reproduce the issue
- Step-by-step instructions to reproduce the issue
- Proof-of-concept or exploit code (if possible)
- Impact of the issue, including how an attacker might exploit it
- Initial Response: Within 48 hours
- Status Update: Within 7 days
- Resolution: Varies depending on complexity
- We will confirm receipt of your vulnerability report
- We will work with you to understand and validate the issue
- We will develop and release a fix as quickly as possible
- We will publicly acknowledge your responsible disclosure (if desired)
This bundle provides:
- one Symfony form type (
PhoneType) with optional country prefix selector - data transformers /
PhoneNumbervalue object - phone validator (catalog patterns and optional
libphonenumber) - Twig form themes and a
CountryFlagRenderer(CSS icons, emoji, or UX Icons) - static CSS under
src/Resources/public/css/(flag icons + widget styles)
There are no HTTP controllers, no API endpoints, and no persistence layer in this bundle.
- Input validation
- National numbers are normalized and validated server-side (
PhoneValidator, optionalValidPhoneNumberconstraint). - Empty values are treated as valid at the phone-validator layer (requiredness is a host-app / Symfony
NotBlankconcern).
- National numbers are normalized and validated server-side (
- XSS / HTML injection
- Country ISO codes and emoji flags rendered by
CountryFlagRendererare passed throughhtmlspecialchars. - Twig form themes render standard form widgets; untrusted HTML is not injected by the bundle.
- Country ISO codes and emoji flags rendered by
- Authentication / authorization
- Not handled by this bundle (must be enforced by the host application where needed).
- Secrets
- No bundle feature requires hardcoded secrets.
- Repository policy: keep
.envand local credentials untracked.
- Optional dependencies
giggsey/libphonenumber-for-phpandsymfony/ux-iconsare optional; absence is handled with catalog fallbacks / CSS flags.
We prefer all communications to be in English or Spanish.
- Maintainer: Héctor Franco Aceituno
- Organization: nowo-tech
Before tagging a release, confirm:
| Item | Notes |
|---|---|
| SECURITY.md | This document is current and linked from the README where applicable. |
.gitignore and .env |
.env and local env files are ignored; no committed secrets. |
| No secrets in repo | No API keys, passwords, or tokens in tracked files. |
| Recipe / Flex | Default recipe or installer templates do not ship production secrets. |
| Input / output | Phone normalization/validation preserved; flag HTML escaped in CountryFlagRenderer. |
| Dependencies | composer audit run; issues triaged. |
| Logging | Logs do not print secrets, tokens, or session identifiers unnecessarily. |
| Cryptography | If used: keys from secure config; never hardcoded. |
| Permissions / exposure | No bundle routes; host app roles apply to forms that embed PhoneType. |
| Limits / DoS | Host app should rate-limit abusive form submissions where applicable. |
Record confirmation in the release PR or tag notes.