通过添加哈希来防止查询字符串操作?

2023-12-28

为了保护 Web 应用程序免受查询字符串操作的影响,我正在考虑向每个 url 添加一个查询字符串参数,该参数存储所有其他查询字符串参数和值的 SHA1 哈希值,然后根据每个请求的哈希值进行验证。

此方法是否提供强大的保护以防止用户操纵查询字符串值?这样做还有其他缺点/副作用吗?

我并不特别担心这个私人网络应用程序的“丑陋”网址。 URL 仍将是“可添加书签的”,因为对于相同的查询字符串参数,哈希值始终相同。

这是一个 ASP.NET 应用程序。


我不确定这是否提供任何形式的安全性。如果中间人攻击者想要更改参数,他们所要做的就是更改查询字符串并重新计算 SHA-1 哈希并将该请求发送到服务器。

例如,浏览器发送的 URL 可能是:

如果攻击者拦截此内容,他们可以通过以下方式对其进行编辑:

实际上,这可以归结为这样一个事实:您只能像信任参数本身一样信任哈希值。

解决此问题的一种方法是,如果用户拥有只有他们和服务器知道的密码,那么攻击者在更改参数时将无法重新计算哈希值。例如:

但不要将密码作为 URL 中的参数之一:)

值得注意的是,这并不是验证两方之间传递的消息完整性的最先进技术。今天使用的是一种基于哈希的消息认证码(HMAC)算法,该算法在HMAC http://en.wikipedia.org/wiki/HMAC,并且最终在RFC2104 https://www.rfc-editor.org/rfc/rfc2104 and FIPS 酒吧 198-1 http://csrc.nist.gov/publications/fips/fips198-1/FIPS-198-1_final.pdf.

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

通过添加哈希来防止查询字符串操作? 的相关文章

  • 此 JavaScript 如何在 Firefox 中打开 Windows 设置?

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

    我想知道是否可以为仅使用 javascript 的表单创建一个安全的人体检测机制 不使用验证码 来检测鼠标移动 因为 jquery 或操作系统代码都可以移动鼠标 我是这么告诉的 这是我的计划 使用 jQuery 我可以检测鼠标是否已移动 然
  • 限制违反架构 - asp.net MVP

    如果我们在应用程序中定义了层次结构 对于前三层架构 我们如何限制后续开发人员违反规范 例如 在 MVP 不是 ASP NET MVC 架构的情况下 演示者应该始终绑定模型和视图 这有助于编写正确的单元测试程序 然而 我们也遇到过这样的情况
  • 在 javascript 中访问 ajax POST 响应

    我正在从 javascript 函数发出 ajax POST 请求 function UpdateMetrics ajax type POST url MyHandler ashx Param1 value1 data contentTyp
  • 限制 SQL Server 连接到特定 IP 地址

    我想将 SQL Server 实例的连接限制为特定 IP 地址 我想阻止来自除特定列表之外的任何 IP 地址的任何连接 这是可以在 SQL Server 实例或数据库中配置的东西吗 听起来像是你会使用Windows防火墙 http tech
  • Microsoft.Extensions.Caching.Redis 选择与 db0 不同的数据库

    一个关于了解使用哪个redis数据库以及如何配置它的问题 我有一个默认值ASP NET Core Web 应用程序和默认配置的本地redis服务器 含15个数据库 通过包管理控制台我已经安装了 Install Package Microso
  • 遭受xss攻击后如何恢复站点?

    最近我正在研究XSS攻击以及它们对网站的破坏性有多大 让我惊讶的是 网络 even SO 充满了关于如何防止xss攻击但没有相关资源说明如何在网站受到 xss 攻击后恢复网站 我遇到过一些事情 比如 将备份网站代码上传回服务器 下载整个网站
  • 生产环境的 Flask-Login 与 Flask-Security

    我正在构建一个功能 供用户注册 登录 验证和授权自己 特别是使用 Python Flask 作为后端 我找到了一些解决方案 例如flask login and flask security 据我了解 flask login实际上并没有进行任
  • SQL参数化查询不显示结果

    我的 DataAcess 类中有以下函数 但它没有显示任何结果 我的代码如下 public List
  • 如何从内容页检索母版页中的控件

    当我最近问一个关于如何从内容页检索母版页中的控件 许多人建议我使用内容页面中的这段代码 Label lbl this Master Page FindControl uxLabel as Label Note any server cont
  • Page_ClientValidate 未定义

    我正在使用 ASP NET 2 0 并使用 IE8 作为我的默认浏览器 但无论我尝试多少次 Page ClientValidate一直给我这个错误 它没有定义 我怎么解决这个问题 请帮忙 所以 我想你的页面中可能没有任何RequiredVa
  • 如何在 Web 表单中进行 Html.Encode

    我有一个 ASP NET Web 窗体应用程序 有一个带有文本框的页面 用户在其中输入搜索词用于查询数据库 我知道我需要防止 JavaScript 注入攻击 我该怎么做呢 在 MVC 中我会使用Html Encode Web 表单中似乎无法
  • 您可以运行一个从 ASP.Net 项目运行计划任务的“服务”吗?

    我为我们的客户构建了一个 Windows 服务 它从数据库中收集所有已更改 新的行 将它们转换为 CSV 然后每晚通过 FTP 将它们上传到某个地方 现在事实证明 他们无权安装或运行 Windows 服务 这是一个仅 Web 路径托管的解决
  • Python PAM 模块的安全问题?

    我有兴趣编写一个 PAM 模块 该模块将利用流行的 Unix 登录身份验证机制 我过去的大部分编程经验都是使用 Python 进行的 并且我正在交互的系统已经有一个 Python API 我用谷歌搜索发现pam python http pa
  • 如何使用asp.net检查li点击事件以进行代码隐藏

    我有列表 li 我想知道单击哪个选项可以在后面编写代码 我怎么可能 ul class mega select sort li class filter wrap a href class mega select filter filter
  • 优化视图状态

    是否有人对优化 ASP NET 应用程序的视图状态有任何想法或参考可以向我指出 我不想把它全部关闭 优化它的主要目标是提高性能 所以我不想运行一个昂贵的函数来递归地禁用某些控件的视图状态 因为该函数会减慢速度页面的加载时间会达不到目的 有任
  • MSDeploy自动加密连接字符串,在字典中找不到密钥

    Since 网络部署 3 5 https blogs iis net msdeploy archive 2013 07 09 webdeploy 3 5 rtw aspx使用以下标志支持连接字符串的自动加密 EnableRule Encry
  • Asp.net MVC 路由 - 防止通过约束路由到 XML 文件

    我正在尝试找到一种方法来阻止用户访问特定的 xml 文件 我尝试过做 routes MapRoute SiteMap SiteMap siteMap xml new new isLocal new LocalHostRouteConstra
  • HttpContext.GetGlobalResourceObject 始终返回 null

    我在 App GlobalResources 文件夹中创建了两个文件 SiteResources en US resx SiteResources sp SP resx 两者都包含 SiteTitleSeparator 的值 这是我想要做的
  • 如何用另一个响应替换窗口的 URL 哈希?

    我正在尝试使用替换方法更改哈希 URL document location hash 但它不起作用 function var anchor document location hash this returns me a string va

随机推荐