Опасный ли динамический инъекционный приказ LINQ? - PullRequest
0 голосов
/ 01 мая 2018

Я сделал возможность сортировать содержимое страницы динамически через две строки запроса и динамический LINQ. Сегодня я только что понял, что могу использовать это непреднамеренно.

Назначение

Обычно я предоставляю параметры строки запроса Sort.Field=SomeField и Sort.Direction=desc, и это позволяет сортировать в коде с помощью query.OrderBy(field + " " + direction).

Unintended

Сегодня я узнал, что могу предоставить что-то вроде Sort.Field=Modified.On != null ? Modified.On : Created.On и Sort.Direction=desc.

Быть способным сделать это само по себе не опасно, но мне стало немного не по себе от того, что возможно с Dynamic LINQ.

Существуют ли какие-либо другие проблемы с безопасностью, которые могут возникнуть у меня из-за подобных инъекций?

Примечание

Я читал этот вопрос / ответ , но это, кажется, больше нацелено на экранирование символов, где меня беспокоит то, на что способна динамическая функция LINQ OrderBy.

...