防止隐藏字段改变

2024-01-27

如果我的 ChangePassword 表单包含隐藏的用户 ID 字段怎么办?

BadPerson 知道 GoodPerson 的 ID。他使用 FireBug 打开“更改密码”表单,将其 Id 更改为 GoodPerson 的 Id,因此 GoodPerson 的密码发生更改。

当然,我可以创建一些服务器逻辑来防止这种情况,但我认为应该有一些开箱即用的解决方案,如果隐藏字段被更改,它会抛出异常,我不知道。

EDIT好的,更改密码是一个坏例子。我在隐藏字段中有 id 的任何编辑表单都有同样的问题。


我同意 Darin 的观点,即表单身份验证将解决上述特定问题(更改密码)。此答案适用于确保隐藏字段的值不更改的更普遍的问题。

对此的最佳解决方案是包含另一个隐藏字段,其中包含第一个隐藏字段值的哈希值。这样,如果第一个隐藏字段发生更改,您就会知道。生成的 HTML 看起来像这样:

<input id="productId" name="productId" type="hidden" value="1" />
<input id="productId_sha1" name="productId_sha1" type="hidden" value="vMrgoclb/K+6EQ+6FK9K69V2vkQ=" />

本文 http://blog.slatner.com/geeky/securing-form-values-in-asp-net-mvc.html展示了如何做到这一点并包含扩展的源代码Html.SecuredHiddenField这将为您处理逻辑。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

防止隐藏字段改变 的相关文章

  • 正确使用 EncryptedSharedPreferences

    Android 最近发布了 EncryptedSharedPreferences 它自动加密 SharedPreferences 键 值数据 虽然这很好 但我发现我可以简单地连接 API 调用并检索解密的值 除了在调用 EncryptedS
  • .net 4.7 中的依赖注入?

    我对 DI 有哪些集成选项有点困惑 我发现它对于 net core 对于我的特定项目 来说非常简单 但我不需要构建跨平台应用程序 也看不到使用 core 的优势 但是 net 框架应用程序似乎仍然使用 Global asax 设置且没有 S
  • 将 Javascript 类数组传递给 MVC 控制器?

    我正在尝试将一系列服务传递给我的控制器 我尝试了很多不同的方法来让它工作 在进入控制器之前序列化数据 序列化每个服务 唯一有效的方法是将控制器参数更改为字符串并序列化数组 然后使用 JsonConvert 但我 d 宁愿不这样做 使用指定的
  • 此 JavaScript 如何在 Firefox 中打开 Windows 设置?

    新安装 Firefox 45 开发版后 我看到了这个页面 它有一个按钮 让我们开始吧 单击该按钮时 会以某种方式打开选择默认应用程序Windows 10 中的设置页面 这是怎么做到的 我无法通过开发者控制台在该页面上迷宫般的代码中找到任何内
  • 使用鼠标检测的反验证码

    我想知道是否可以为仅使用 javascript 的表单创建一个安全的人体检测机制 不使用验证码 来检测鼠标移动 因为 jquery 或操作系统代码都可以移动鼠标 我是这么告诉的 这是我的计划 使用 jQuery 我可以检测鼠标是否已移动 然
  • 传入字典的模型项是类型

    我有一个我理解的错误 但无法找出以正确的方式解决的方法 我有一个 MasterPage 我从该 MasterPage 中调用 标签是一个强类型视图 如下所示 我像这样返回 PartialView return View Tags resul
  • 阻止未确认电子邮件的用户使用 Identity 2 登录 ASP.Net MVC

    在 Microsoft Identity 2 中 用户可以确认我从以下位置下载了 Identity 2 示例项目的电子邮件地址here https www nuget org packages Microsoft AspNet Identi
  • Visual Studio 智能感知搞砸了

    所以我是 MVC4 和 C 的新手 我已经设计这个网站大约两周了 智能感知没有任何问题 两天来 Visual studio 告诉我 Viewbag 和其他 命令不是我的项目的一部分 我可能错过了一些东西 或者它告诉我 Viewbag 在当前
  • Django 多个具有相同名称的输入字段值

    我需要一些帮助 如何处理具有多个输入字段值且名称相同的表单 而且只有一次查看 这实际上是针对基本问题的形式 我发现这个方法的另一个想法https stackoverflow com a 478406 6396981 https stacko
  • 如何正确清理来自 AngularJS 控制器的无效输入的表单?

    我有一个 AngularJS 表单 其中包含 除其他字段之外 类型之一url 后者很重要 因为这会强制相应的输入成为有效的 URL 在某些条件下 例如 要关闭具有此类表单的模式对话框 我想以编程方式清除该表单 为此 我实现了方法reset基
  • 将属性标记中的值提交到操作表单

    The JSP
  • 如何强制 Visual Studio 2008 生成 Designer.cs,例如不管怎样.aspx.designer.cs

    我在使用 Visual Studio 2005 使用网站技术生成的 Asp Net V2 0 中有一些 Web 表单 想要将它们导入到设置为 v3 5 Asp Net MVC 的 Visual Studio 2008 我在其中使用项目技术
  • 表单发布请求并存储收到的数据

    我有一个非常简单的表单 在提交时发出发布请求
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat
  • 使用值填充的 Symfony2 自定义字段类型

    这是先前问题的后续问题Symfony2 自定义表单类型或扩展 https stackoverflow com questions 24079288 symfony2 custom form type or extension 我正在尝试为订
  • 如何在react-bootstrap中禁用表单提交的

    在下面的代码片段中 我有许多文本类型的输入表单 如果用户点击 我似乎会得到相同的合成事件 就像他们按下提交按钮一样 我想忽略作为表单提交 只允许一个人按下 提交 按钮 我删除了一些表单组以减少示例 在所有情况下 按钮或 ENTER 键 e
  • 无法将 MVC 4 部署到服务器

    我的 Web 应用程序只是一个用 VS 2010 MVC 4 制作的简单 Web 应用程序 没有任何外部代码 它只是 VS 2010 的默认应用程序 我有 Plesk 的豪华 Windows 托管 我从未更改过帐户中的任何功能 我将所有文件
  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • JQuery Mobile 与 MVC 的链接

    我正在使用 ASP NET MVC 3 和 Razor UI 设置 JQuery 移动网站 我正在生成我的链接 例如 a href See Group 2 a 假设我从 Home Index 访问它 我遇到的问题是 当我点击链接时 它会出现
  • PHP 表单 - 带验证蜜罐

    我有以下内容 效果很好 但对垃圾邮件机器人开放 我想放入蜜罐 而不是验证码 下面的代码适用于验证姓名 电子邮件 消息 但我无法让它与蜜罐一起工作 任何人都可以查看 蜜罐 代码并告诉我如何修复它吗 我希望表单给出 success2 不允许垃圾

随机推荐

  • 在 Phaser 3 中使用图块地图时,如何阻止图块渗色?

    在 Phaser 3 中添加图块地图时 图块之间存在明显的出血 或间隙 这有时被描述为瓷砖的 闪烁 或 闪烁 这在平移时通常更为突出 const map this make tilemap key some map const tiles
  • 是什么意思??在达特

    我在中看到了这个运算符共享首选项的示例 https pub dartlang org packages shared preferences对于 Flutter 插件 我没明白 int counter prefs getInt counte
  • 在 Mustache (php) 中使用点表示法是不好的做法吗?

    我在 github 上发现了这张票 https github com bobthecow mustache php issues 34 issuecomment 805892 https github com bobthecow musta
  • 迭代 Data.Set 直到成功

    假设我有一个代表某些可能失败的计算的函数 f a gt Maybe b 如果我有一个清单l 我可以找到列表中的第一个 从左到右扫描时 项目f成功使用findList f l where findList是下面的函数 findList a g
  • SQL Server 脚本 2012 项目集成到 Team Foundation Server 2012 中

    我有一个包含多个 SQL 查询和存储过程的 SQL Server 脚本 2012 项目 我们使用 Team Foundation Server 2012 来管理 Visual Studio 解决方案的源代码 如何将 SQL Server S
  • 基于 Scanline 的 2D 渲染引擎如何工作?

    您能否为我提供一个参考 以帮助我了解基于扫描线的渲染引擎的工作原理 我想实现一个 2D 渲染引擎 它可以支持基于区域的剪切 基本形状绘制和抗锯齿填充以及基本变换 透视 旋转 缩放 我需要优先考虑性能而不是质量的算法 因为我想为没有 fpu
  • Rails 5.2 Active Storage 清除/删除附件

    因此 我使用 Active Storage 上传附加到集合模型的多个图像 一切正常 除非我尝试从集合中清除 删除单个附件 问题 由于某种原因 每当我加载集合的显示页面时 我的所有图像都会立即被清除 删除 当然 我只想在单击链接时删除文件 有
  • ios11如何防止录屏

    由于某些原因 我们的APP不希望人们录制屏幕 但是在ios11中 一个新功能可以让用户录制iPhone屏幕 那么是否有API或通知表明用户正在录制 十分感谢 您可以通过以下方式检测屏幕是否正在录制 UIScreen main isCaptu
  • 无法创建 F# Android 项目 - Visual Studio 2015 Xamarin 社区

    我正在按照对话选项从 Xamarin 下载页面在 Visual Studio 社区版中创建新的 F Android 空白活动 但运气不佳 C android 项目似乎工作得很好 这是 Xamarin 开源公告后不久发布的 Visual St
  • 将嵌套列表(不等长)转换为数据框[重复]

    这个问题在这里已经有答案了 我有一个嵌套列表 对于某些指数 缺少一些变量 1 sk ques pval 10 sfsf 0 05 2 sk ques pval diff 24 wwww 0 11 0 3 3 sk ques pval dif
  • Java 使用 Cassandra 的最佳 api/库是什么? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找具有以下要求的 API 它使用简单且简洁 它并不臃肿 以 Spring 的方式工作 或者至少很容易使其与 Spring 一起工作
  • WKWebView 添加为子视图在 Swift 中旋转时不会调整大小

    我正在努力向我的浏览器应用程序添加新的阅读视图 它是另一个视图控制器 仅包含作为子视图添加的 WKWebView 并带有用于关闭视图的按钮 和手势 一切都很好 但是当我旋转设备时 子视图的大小没有调整 所以我的屏幕的一半是空的 阅读视图中的
  • Shared_ptr 和 unique_ptr 有例外

    From en cppreference com http en cppreference com w cpp memory unique ptr std unique ptr 的典型用途包括 提供异常安全 处理具有动态生命周期的对象的类和
  • 为什么角度日期过滤器将 2 添加到小时?

    我使用角度 日期 过滤器在角度js中创建了一个持续时间计时器 由于某种原因 小时部分以 2 而不是 0 开头 我像这样使用过滤器 runningDuration date HH mm ss http jsfiddle net rpg2kil
  • 有没有办法通过图形浏览器API获取所有应用程序的主列表

    In Azure Active Directory 管理中心 我可以看到下面有近200个应用程序企业应用 我怎样才能通过这个微软图形资源管理器 我尝试过这个 https graph microsoft com beta applicatio
  • 如何将所有 VBScript 文件的 cscript.exe 更改为 wscript.exe 执行?

    安装新服务器后 我遇到了一个问题 我有很多 vbs 文件 都需要在 wscript 中运行 原因是 我使用所有这些命令 例如 WScript Echo hello 我希望双击时能够看到输出VBScript http en wikipedia
  • 如何复制字典并仅编辑副本

    I set dict2 dict1 当我编辑时dict2 原本的dict1也发生变化 为什么 gt gt gt dict1 key1 value1 key2 value2 gt gt gt dict2 dict1 gt gt gt dict
  • 我需要一个 hack 来制作 xslt 让我们为变量设置新值

    我读到 与编程语言不同 XSLT 不允许我们为变量设置新值 我只是想知道是否有任何技巧可以绕过人们正在使用的这个限制 因为有能力重置 a 的值variableAFAIK 本质上很有用 好吧 至少如果我们可以重置变量的值 我可以在这里解决我的
  • Flutter - 如何在 GetStorage 中存储列表?

    对于用户浏览的每一篇文章 我想保存ID信息 我正在使用 getstorage 我的代码示例如下 我也找不到真正的方法 我正在寻找保存 id 列表的最佳方法 final box GetStorage List
  • 防止隐藏字段改变

    如果我的 ChangePassword 表单包含隐藏的用户 ID 字段怎么办 BadPerson 知道 GoodPerson 的 ID 他使用 FireBug 打开 更改密码 表单 将其 Id 更改为 GoodPerson 的 Id 因此