URL 真的可以被视为 HTTP 响应的唯一密钥吗? [关闭]

2024-04-14

这个问题既可以看作是实践问题,也可以看作是理论问题。

我正在设计一个涉及 HTTP 客户端(Flash Player 应用程序)和 HTTP 服务器“后端”的系统。每个注册用户都有自己的私人图像库。图像可以上传,当然随后也可以检索。

由于用户使用携带会话标识符的 cookie 进行身份验证,因此我(以及问题)突然变得清楚,我可以为经过身份验证的客户端提供以下类型的 URL 来检索图像(我的术语中的“资产”)。请注意,资产标识符即使在用户之间也是唯一的,即没有两个用户都拥有 ID 为 555 的资产。此外,资产标识符被假定为真正持久的,即 ID 是不可重用的。我想到的网址是:

http://myserver/user/asset/<asset_id>

括号表示变量值,即显然这些和“asset_id”在这里不应逐字记录,它们表示实际的资产标识符。 “发往”上述 URL 的 HTTP 请求预计会携带带有用户会话标识符的 cookie 标头,该标头唯一地验证并授权用户作为所请求资产的所有者。

我非常追求永久 URL(“酷 URI 不会改变”,正如 Tim Berners-Lie 曾经说过的那样),但显然,由于资产资源对于上传/拥有它们的用户来说是私有的,因此它们不会被缓存任何中间代理,只有用户代理。

我们是否可以将上面的 URL 视为识别用户资产的好方法?我担心的是,响应会根据是否提供有效的会话标识符 cookie 标头而有所不同,因此 URL 和响应之间不存在一对一的关系。但一个人能做的并不多,不是吗?服务器必须检查用户是否有权检索资产,对吗?如果你们对这里的解决方案有任何更好的建议,我也很想听到。谢谢。


你已经说了这一切,我不会改变你的策略:-) 如果未经授权的用户尝试访问某些资产,只需给他一个 403 http 代码......在这种情况下,这是正确且预期的响应

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

URL 真的可以被视为 HTTP 响应的唯一密钥吗? [关闭] 的相关文章

  • 如何在 Varnish 中禁用“传输编码:分块”编码?

    Using 清漆4 https www varnish cache org content varnish cache 400 我有一组后端以有效的方式响应Content Length标题和没有Transfer Encoding heade
  • 在 Go 中读取请求负载?

    我正在使用文件上传器 需要请求负载中的详细信息来裁剪它 func Upload w http ResponseWriter r http Request reader err r MultipartReader if err nil htt
  • 如何在纯 HTML 页面中返回特定的 HTTP 状态代码

    Google 建议当网站暂时不可用时返回 503 HTTP 响应 我有一些纯 HTML 网站 如何在纯 HTML 网站中返回 503 状态 我使用的是带有 Apache 的 Linux 机器 您必须在服务器上而不是在 HTML 文件中设置状
  • 通用开源 REST 客户端? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 静默地将 api 资源移动到另一个 url

    我已经用 WepApi 2 编写的 api 与主网站紧密结合 我决定将其与另一个网络应用程序解耦 以使事情更加隔离 我遵循了这样的步骤 将所有 API 控制器提取到另一个项目 创建属性以将当前使用旧 URL 的所有用户重定向到新 URL 由
  • 如何将 POST 请求内容保存为 .NET 中的文件 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有一个客户端应用程序POST请求a
  • 如何自定义解析错误的 HTTP 400 响应?

    我编写了一个 REST API 服务 要求所有响应均为 JSON 但是 当 Go HTTP 请求解析器遇到错误时 它会返回 400 作为纯文本响应 而不会调用我的处理程序 例子 gt curl i H Authorization Basic
  • Angular4如何使用flatMap链接forkJoin

    我所处的情况是 我需要进行 5 个可以并行执行的 http 调用 在这五个调用之后需要执行另一个 http 调用 我在前 5 个中使用了 forkJoin 但我不知道如何链接 flatMap 或其他函数 forkJoin firstObse
  • 在 Java Servlet 应用程序中设置 HTTP 201 响应的 Location 标头的正确方法是什么

    考虑以下代码向客户端发送 HTTP 201 已创建 响应 String url app things id 42 example response setStatus HttpServletResponse SC CREATED respo
  • 是否有管理 __utma、__utmz 等 cookie 的标准?

    无论我登录 Facebook 还是 Twitter 我都会受到以下名称的 cookie 轰炸 utma utmb utmc utmv 它们的功能是什么 是否有一个标准来管理这些在服务器端的使用方式 这些 cookie 通常与谷歌分析 htt
  • HttpRequest PUT内容到poco库中

    我想使用 HTTP PUT 请求将一些数据从 C 应用程序发送到服务器 我在用poco http pocoproject org我的应用程序中的网络库 我正在使用这个代码片段 HTTPClientSession session uri ge
  • Angular JS 在调用新的 $http 之前取消 $http 调用

    在 Angular JS 1 1 5 中 您可以取消之前启动的 http 调用 这两个link1 https stackoverflow com questions 16962232 in angularjs how to stop ong
  • HTTP部分上传、断点续传的标准方法

    我正在开发 http 客户端 服务器框架 并寻找处理部分上传的正确方法 与使用带有 Range 标头的 GET 方法进行下载相同 但是 HTTP PUT 并不打算恢复 据我所知 PATCH 方法不接受 Range 标头 有没有办法通过 HT
  • Chrome 在传输一定量的数据后挂起 - 等待可用的套接字

    我有一个浏览器游戏 最近我开始向游戏添加音频 Chrome 无法加载整个页面并卡在 91 requests 8 1 MB transferred 并且不再加载任何内容 它甚至破坏了所有其他选项卡中的网站 说Waiting for avail
  • 在处理程序之后访问 HTTP 请求上下文

    在我的日志记录中间件 链中的第一个 中 我需要访问一些在链下游的某些身份验证中间件中编写的上下文 并且仅在处理程序本身执行之后 旁注 需要首先调用日志记录中间件 因为我需要记录请求的持续时间 包括在中间件中花费的时间 此外 当权限不足时 身
  • 在golang中获取TTFB(第一个字节的时间)值

    我正在尝试获取 TTFB 值和 Connect 值 c exec Command curl w Connect time connect TTFB time starttransfer Total time time total o dev
  • 是否可以修改 $_SESSION 变量?

    恶意用户是否可以将 SESSION 在 php 中 变量设置为他想要的任何值 很大程度上取决于您的代码 有一点非常明显 SESSION username REQUEST username
  • 有没有办法使用 ASP.NET 在用户离开页面时始终运行某些服务器端代码?

    我想知道当用户离开 ASP NET 中的页面时是否有任何方法可以始终运行一些服务器端代码 页面卸载事件不好 因为如果有人单击链接 则不会调用该事件 理想情况下 即使用户关闭浏览器 我也希望代码能够运行 我怀疑我所问的问题是不可能的 但问一下
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • 网站(Google 和/或您)应如何处理 Accept-Language 标头?

    很长一段时间以来 我对谷歌在以下情况下的行为并不满意 并且在无意中注意到之后80 其他人 https stackoverflow com questions 1011167 what are common ui misconceptions

随机推荐

  • iPhone 6s Plus 横向尺寸为紧凑型

    我有一部 iPhone 6s Plus 并且有一个支持纵向和横向方向的应用程序 当我旋转设备并读取属性 mainViewController traitCollection horizo ntalSizeClass 时 它始终等于UIUse
  • 如何在不进行试飞的情况下向您的团队分发测试版 iOS 应用程序?

    我已经构建了一个应用程序 我想将它分发给很多用户 直到它获得苹果的批准 我不想用试飞和其他第三方分发应用程序 有什么办法可以做到这一点 Thanks 您可以使用分发配置文件创建 ipa 然后通过邮件或任何共享介质共享它 一般我用dropbo
  • 如何在单独执行“npm install ”后运行安装后脚本

    我正在维护以下目录结构 home user Desktop app package json server js node bin node npm include lib
  • 一次显示多个权限xamarin表单

    我正在为 Android 和 IOS 创建 Xamarin Form PCL 项目 是否可以在屏幕上同时显示多个权限 我的应用程序正在使用位置 存储和相机权限 从我当前的代码来看 这是在不同页面上一一显示权限弹出窗口 就像使用相机之前一样
  • WooCommerce:在结帐页面中默认设置国家/地区

    我在用WooCommerce在我的 WordPress 网站中 默认情况下 结帐页面上会填充客户的账单和运输详细信息 我希望该国家 地区不会被默认设置 相反 即使用户已登录 它也会要求选择国家 地区 有什么建议么 为了实现这个目标我应该做什
  • 如何在 Sails.js 或 Express.js 中设置本地时区

    当我在帆上创建或更新记录时 它会在 updateAt 处写入 updatedAt 2014 07 06T15 00 00 000Z 但我现在是 GMT 2 小时 在这个季节 更新是在 16 00 执行的 我的模型中声明的所有日期时间字段都有
  • C# azure 函数中读取 Azure IoT 设备列表时出现异常

    我正在 C 函数中使用 IoT 中心 SQL 查询来获取 Azure IoT 设备列表 var query registry CreateQuery SELECT deviceId tags SiteId FROM devices 100
  • 我可以使用 line_exists 检查初始值或不相等的值吗?

    ABAP 7 40 添加了line exists 谓词函数来分析内表 但我有什么办法可以检查是否存在特定列为初始值或与目标值不同的行 例如 如何检查具有初始材料列的行 例如此表中的第三行 Document Country Material
  • PhpStorm 本地主机根目录

    在 PhpStorm 中运行项目时 它会将我带到 localhost 63342 MyProject index php 但这会破坏所有链接 因为它将项目名称添加到我的链接工作的 URL 中 因为在域上它们都是 mysite com ima
  • 有条件去抖,取决于 event.keyCode

    我有一个搜索字段 它接受用户输入并使用去抖事件侦听器发出 ajax 请求 html
  • 异常消息:没有工作文件夹映射

    我正在尝试在 tfs vs net 2012 中测试自动化构建 我已在源代码管理资源管理器中设置了工作路径 但现在出现错误 Exception Message There is no working folder mapping for t
  • 切换到没有名称的窗口

    使用 Codeception 测试框架和 Selenium 2 模块来测试网站 我最终点击了一个超链接 该链接打开了一个没有名称的新窗口 结果是switchToWindow 函数将不起作用 因为它正在尝试切换到父窗口 我当前所在的窗口 如果
  • 照常针对 docker 容器运行测试或 dockerize 测试?

    我是 Docker 新手 正在阅读有关 Docker 的文章 这是在独立且可重复的标准化配置 正确完成时 中测试系统的好方法 然而 在我读过的所有内容中 似乎并没有过多强调如何使用 docker 容器进行测试 docker 用于 包含 基础
  • 避免直接访问JSF页面的源代码

    当我请求时 personal faces public login xhtml 那么它工作正常 但是当我请求时 personal public login xhtml没有 faces我获得了该页面的原始源代码 我想避免人们看到页面的源代码
  • 如何在 JavaScript 中对两个对象数组执行内连接?

    我有两个对象数组 var a id 4 name Greg id 1 name David id 2 name John id 3 name Matt var b id 5 name Mathew position 1 id 6 name
  • System.Web.Caching 与企业库缓存块

    对于将在 Web 应用程序和富客户端应用程序中使用的 NET 组件 似乎有两个明显的缓存选项 System Web Caching 或 Ent 库 缓存块 你用什么 Why 系统 Web 缓存 http msdn microsoft com
  • 理解 Svelte 中的上下文(从 React Context 转换)

    我有一个使用 ContextAPI 来管理身份验证的 React 应用程序 我正在尝试在 Svelte 中实现类似的功能 In Authenticate js我有这个 import React useContext useState use
  • velocity.js 最新更新(2.0.3)后无法读取属性“模式”错误

    我的代码直到昨天才有效 id home layer velocity transform scale 2 duration duration easing ease out loop false 现在我收到一个错误 未捕获的类型错误 无法读
  • 谷歌电子表格货币格式带后缀

    我的单元格的数据格式如下 12 345 67 EUR 一万二千三百四十五欧元六十七美分 我无法更改此格式 我需要将其中的很多内容从其他来源复制粘贴到电子表格中 我试图用它进行一些计算 但它向我展示了 VALUE 错误说它是文本 不能强制为数
  • URL 真的可以被视为 HTTP 响应的唯一密钥吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 这个问题既可以看作是实践问题 也可以看作是理论问题 我正在设计一个涉及 HTTP 客户端 Flash Player 应用程序 和 HT