我最近继承了ASP.NET MVC 4代码库.我注意到的一个问题是在URL中使用了一些数据库ID(int)以及html表单提交.通过URL修改和创建具有不同数字的自定义
HTML帖子,可以利用其当前状态中的代码.
现在,虽然我可以通过使用会话状态或其他身份验证检查轻松修复URL问题,但我不太确定嵌入到网站吐出的HTML中的数据库ID(即我给他们一个下拉填充).当ids回到帖子中时,我怎么能确定我把它们作为有效选项?
在解决这个问题方面,什么被认为是“最佳实践”?
虽然我很欣赏我可以“引导它”我这样做是犹豫不决的,因为我发现在调试数据库时,它们很难解决问题.
我在这里有选择吗?我必须指导以防止轻松猜测ID,或者是否有某种DRY机制可用于验证ID返回站点时的使用情况?
更新:一位评论者询问了我期待的漏洞.让我们说我吐出一个HTML表单,其中包含一个可以导入“宝藏”的所有位置的下拉列表.用户拥有的位置的ID是1,2和3,这些是在HTML中提供的.但是用户检查html,用它来解决问题,并决定将选择了id为4的POST放在一起. 4不是他的位置,是别人的.