加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

如何在避免GUID的同时阻止我的HTML被利用?

发布时间:2020-12-14 18:46:03 所属栏目:资源 来源:网络整理
导读:我最近继承了ASP.NET MVC 4代码库.我注意到的一个问题是在URL中使用了一些数据库ID(int)以及html表单提交.通过URL修改和创建具有不同数字的自定义 HTML帖子,可以利用其当前状态中的代码. 现在,虽然我可以通过使用会话状态或其他身份验证检查轻松修复URL问题,
我最近继承了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不是他的位置,是别人的.

解决方法

验证根据用户可以修改的ID传递的ID.

这可能看起来很乏味,但这确实是确保用户可以访问他们试图修改的内容的唯一方法.使用没有验证的GUID是默默无闻的安全性:确定猜测它们很难,但是如果有足够的资源,你可以猜测它们.

在对发布的数据执行任何其他操作之前,您可以在控制器顶部执行此操作.如果存在违规,只需抛出异常并让全局异常处理程序处理它;您不需要以漂亮的方式处理它,因为您可以安全地假设用户以不受支持的方式篡改数据.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读