Automattic / Automattic/VIP-Coding-Standards

ProperEscapingFunction: flag printf() usages for placeholders being escaped incorrectly

Ouverte
#674 5 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Type: Enhancement
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

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.