ajv-validator / ajv-validator/ajv

Issue: Invalid `date-time` and `time` Formats Accepted

Aperta
#2,572 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
bug report
Lingua principale
TypeScript
Stelle
14.8k
Fork
1k
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

I am encountering issues with the JSON Schema validation for both the `date-time` and `time` formats. The validator is incorrectly accepting invalid strings that should be rejected according to the ISO 8601 standard.

### 1. Invalid `date-time` Format:

The following date-time string is being accepted as valid, but it should be considered invalid:

- Valid date-time: `2024-06-01T12:34:56Z`
- Invalid date-time (but accepted): `2024-06-01T12:34:56ZAS`

The `ZAS` suffix is not part of the correct ISO 8601 format, yet the validator allows it.

### 2. Invalid `time` Format (with Offset):

The following time string with an offset is accepted as valid, which is correct:

- Valid time with offset: `12:34:56+12:44`

However, the following string is also accepted, which should **not** be valid:

- Invalid time with extraneous characters: `12:34:56+12:44AS`

The `AS` suffix is not part of the valid ISO 8601 time format with offset, but the validator incorrectly allows it.

### Expected Behavior:
1. For the `date-time` format, only valid ISO 8601 date-time strings (e.g., `2024-06-01T12:34:56Z`) should be accepted, and any additional suffixes (like `ZAS`) should be rejected.
2. For the `time` format with offset, only valid time strings with an offset (e.g., `12:34:56+12:44`) should be accepted. Any extra characters (like `AS` in `12:34:56+12:44AS`) should cause the string to fail validation.

### Steps to Reproduce:
1. Use a JSON Schema validator that supports the `date-time` and `time` formats (e.g., AJV, Joi, etc.).
2. Provide the following strings as input:
- `2024-06-01T12:34:56ZAS` for `date-time`.
- `12:34:56+12:44AS` for `time` with offset.
3. Both strings should be rejected, but the validator accepts them as valid.

### Version of the Validator:
- Version: 1.4.0

### Additional Notes:
- The issue arises when extra characters are appended to valid time strings, which should be rejected.
- This behavior could be problematic when ensuring strict ISO 8601 conformance for both `date-time` and `time` fields with offsets.

Thanks for investigating this!

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.