こんにちは私のPHPプロジェクトでは、ユーザーはフォームの入力を介してテーマの名前(電卓デスクトップテーマメーカー)を送信します。 (プロジェクトはgithubでホストされています) 問題は次のとおりです。 テーマ名にこれを使用して、ユーザーはサービス上の任意のフォルダにアクセスする可能性があります。 私はこのコミットでそれを修正しようとした:Github commitユーザー入力のパスインジェクション
$theme_name = str_replace("/", "_badyou_", $_GET["name"]); //contains the good themename
私は名前だけを必要とするので、私は排除は、「/」は十分であると考えました。 しかし私は実際に私よりもPHPをよく知っている人の意見が必要です。
P.S私の悪い英語のために申し訳ありません。 ありがとうございます。
コードには、エラーをユーザーに通知するメカニズムがありますか?ランダムにユーザー入力を変更するのではなく、適切なエラーメッセージで悪い入力を拒否する方が簡単だと思います。ブラックリストアプローチが失敗する運命にあることは言うまでもありません。 –