Automattic / Automattic/VIP-Coding-Standards

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

Aperta
#674 5 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Type: Enhancement
Lingua principale
PHP
Stelle
261
Fork
44
Merge medio
19m
PR unite (30g)
1

Descrizione

## 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

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia individuando la regola ProperEscapingFunction e la sua gestione delle chiamate a printf(). Confronta gli esempi PHP segnalati e non segnalati nell’issue, quindi trova la copertura di test esistente della regola. Il lavoro è completato quando vengono segnalati gli argomenti dei segnaposto con escaping errato, mentre l’esempio di escaping corretto mostrato e i casi con funzioni di traduzione vengono accettati.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
php
Ambito
security, tooling
Tipo di issue
Funzionalità
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
42/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.