我已经能够通过两个查询字符串和动态LINQ动态地对页面内容进行排序。今天我才意识到我可以以一种无意的方式使用它。
拟
通常我会提供查询字符串参数Sort.Field=SomeField
和Sort.Direction=desc
,这样就可以在代码中通过query.OrderBy(field + " " + direction)
设置排序。
意外
今天我了解到我可以提供类似Sort.Field=Modified.On != null ? Modified.On : Created.On
和Sort.Direction=desc
的内容。
能够做到这一点本身并不危险,但是让我对动态LINQ的可能性感到有点不安。
是否存在任何其他可能发生的安全问题,我从未想过,通过这种注射?
注意
我确实读过这个question/answer,但这似乎更倾向于逃避角色,我关心的是动态LINQ的OrderBy
函数能够做什么。