Automattic / Automattic/VIP-Coding-Standards
ProperEscapingFunction: flag printf() usages for placeholders being escaped incorrectly
- Langage dominant
- PHP
- Étoiles
- 261
- Forks
- 44
- Merge moyen
- 19 min
- PR mergées (30 j)
- 1
Description
## Describe the solution you'd like
When `printf()` is used, we should ensure that the content in the placeholders are correctly escaped.
## What code should be reported as a violation?
```php
printf(
'%s',
esc_url( $class ), // Error.
esc_attr( $url ), // Error.
esc_attr( $content ), // Error.
);
```
```php
printf(
'%s',
esc_html__( $class, 'domain' ), // Error.
esc_url( $url ),
esc_attr_x( $content, $context, 'domain' ), // Error.
);
```
## What code should *not* be reported as a violation?
Correct usages of escaping:
```php
printf(
'%s',
esc_attr( $class ),
esc_url( $url ),
esc_html( $content )
);
```
Correct usages of escaping with translation functions:
```php
printf(
'%s',
esc_attr_x( $class, $context, 'domain' ),
esc_url( $url ),
esc_html__( $content, 'domain' )
);
```
## Additional context
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par localiser la règle ProperEscapingFunction et son traitement des appels à printf(). Comparez les exemples PHP signalés et non signalés dans l’issue, puis trouvez la couverture de tests existante de la règle. Le travail est terminé lorsque les arguments d’espace réservé échappés incorrectement sont signalés, tandis que l’échappement correct montré et les cas de fonctions de traduction sont acceptés.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- php
- Domaine
- security, tooling
- Type d'issue
- Fonctionnalité
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 42/100