Automattic / Automattic/VIP-Coding-Standards
ProperEscapingFunction: flag printf() usages for placeholders being escaped incorrectly
- 主要言語
- PHP
- スター
- 261
- フォーク
- 44
- 平均マージ
- 19分
- マージ済み PR(30日)
- 1
説明
## 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
コントリビューションガイド
調査の方向性
まず、ProperEscapingFunction ルールと printf() 呼び出しの処理箇所を見つけます。issue にある報告対象と報告対象外の PHP の例を比較し、その後、ルールの既存のテストカバレッジを確認します。誤ってエスケープされたプレースホルダー引数が報告され、示されている正しいエスケープと翻訳関数のケースが受け入れられれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- php
- 領域
- security, tooling
- issue の種類
- 機能追加
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 42/100