web-dev-qa-db-ja.com

プラグインからアップロードしたファイルfilenameをサニタイズするには?

アップロードされたファイルfilenameをサニタイズしないWordPress Form Managerプラグインに問題があります。そのため、ユーザーがファイル名に特殊文字を含む写真をアップロードすると、たとえばフロントエンドに表示することはできません。

私の質問は、どうすればそれを消毒できますか?

Ps:私はすでにプラグインの作者に質問をしました。

1
Daniel

私は方法を発見しました。 wordpress-form-managerプラグインのdirecoty - > types - > file.phpの行を変更します(109行目付近)

から:

if($fileNameFormat == "%filename%"){
    $newFileName = $pathInfo['filename'];
}

に:

if($fileNameFormat == "%filename%"){
//Sanitize the filename (See note below)
    $remove_these = array(' ','`','"','\'','\\','/','%');
    $newFileName = str_replace($remove_these, '', $pathInfo['filename']);
//Make the filename unique
    $newFileName = time().'-'.$newFileName;                 
}
1
Daniel