Я думаю, что вы недоразумение.Предостережение против использования внешнего пользовательского ввода в качестве кеша ключей .Другими словами, вы не должны принимать какой-либо ввод от пользователя и устанавливать что-то в кеше через это:
_cache.SetString(userInput, "foo");
Речь не идет о настройке ввода пользователя как значение , т.е.:
_cache.SetString("my cache key", userInput);
Это также не говорит о разделении кеша по пользователю:
_cache.SetString($"cache key for user {userId}", "foo");
Оба последних сценария хороши.Просто то, что пользователь может сам установить ключ, открывает себя для таких вещей, как потенциальные атаки с использованием SQL-инъекций, в зависимости от вашего хранилища кэша.
Также обратите внимание, что в основном речь идет о неанизированном пользователе.вход.Если это что-то вроде перечисления, в котором пользователь может выбирать только из набора определенных значений, то все в порядке.Или, если вы иначе знаете, что ввод не будет вызывать проблемы.Например, проверенный почтовый индекс содержит только цифры и, возможно, одну черту.Злоумышленник ничего не может с этим поделать, так что все в порядке.Однако текстовое поле произвольной формы, например «Имя», по меньшей мере, было бы проблематичным.