银行式导航限制

2023-11-30

某些网络应用程序(尤其是银行网站)会阻止您使用浏览器的导航按钮、在新选项卡中打开链接甚至刷新页面。通常他们会警告您不要这样做,甚至终止会话,迫使您再次登录。

他们是否遵循特定的架构模式来实现这一目标? 他们的目标是什么? 这如何提高安全性?


他们可能使用隐藏表单字段传递的 POST 变量来传递页面状态,并且相同的 URL 处理程序将处理每个请求,而不是为不同的页面使用不同的 URL 处理程序。

例如到“最近交易”的链接可以编码如下

<form method="post" action="https://www.example.com/securebankpage">

<input type="hidden" name="action" value="recentTransactions" />
<input type="hidden" name="token" value="3423432432535235325098525125242" />

<input type="submit" value="View Recent Transactions"  />

</form>

Where token是一个安全随机生成的值,该值根据每个用户会话和操作组合在服务器端记录,并且在用户导航时根据提交的表单值验证服务器端记录。

由于每个页面都是通过 POST 方法加载的,因此用户不可能通过意外单击“后退”然后接受浏览器提示重新提交数据来重复该操作。这是因为token将被标记为已使用的服务器端,并且不允许再次使用令牌。如果后退按钮导航到汇款页面,则很有用,因为汇款不会意外重复。这还可以防止某些类型的重放攻击。

该架构还可以防止CSRF因为任何尝试发起 POST 的攻击者都不知道令牌值https://www.example.com/securebankpage从他们的网站并通过action as doMoneyTransfer.

令牌应该有时间限制,因此如果在设定的时间(例如 15 分钟)内未使用,则应将它们标记为已过期,并且如果用户的会话仍处于活动状态,则应在呈现时为每个可能的操作重新生成令牌。

在新选项卡中打开的链接本身并不存在安全风险,但如果服务器不断刷新每个可能操作的令牌,则原始窗口中的链接现在将包含过期的令牌,因为它们尚未刷新,这就是系统可能会阻止您这样做并在整个系统中拥有一条可以跟踪的路径。

在上面的示例中,我提到所有内容都通过 POST 传递,但也可以使用 GET 和单独的页面处理程序 URL 来实现类似的功能。 POST 路由稍微安全一些,因为页面将通过停止重新提交表单的机制在浏览器中自动过期,尽管也可以通过其他方式实现这一点。使用独特的代币是重点。

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

银行式导航限制 的相关文章

  • 良好的安全实践和自动身份范围管理是否相互排斥?

    我正在尝试使用自动身份范围管理 http msdn microsoft com en us library ms152543 aspx sectionToggle1 但是 确保我的用户可以在具有标识列的表中插入记录的唯一方法是使它们db o
  • antisamy 解析器强制关闭标签

    我使用 Antisamy 来验证 HTML 我的政策允许 iframe 例如 YouTube 视频 问题是 如果标签为空 像这样 清洗后会是这样的 但它应该有正常的结束标签 这会破坏之后页面上的所有内容 我已经将指令设置为使用大部分 HTM
  • “您的安全设置已阻止本地应用程序运行”Java 8

    我正在尝试在 Chrome 窗口中运行一个小小程序 但收到错误消息 我确实看到所有回复都告诉我将安全性更改为中级 但版本 8 中不存在该选项 到目前为止 几个小时的谷歌搜索和向同学寻求帮助没有带来任何进展 有人可以建议一下吗 Medium在
  • 使用openssl从服务器获取证书

    我正在尝试获取远程服务器的证书 然后可以将其添加到我的密钥库中并在我的 Java 应用程序中使用 一位高级开发人员 正在度假 告诉我我可以运行这个 openssl s client connect host host 9999 获取转储的原
  • 加密成本高,解密成本低

    我希望该用户 攻击者加密数据并发送给服务器 现在我想要一种与标准算法完全相反的算法 使用快 难以解密 即很难使用服务器发送的密钥来加密密码等数据 以防止随机攻击 但很容易解密这样服务器在验证用户时消耗的时间非常少 但是对于攻击者来说 每次使
  • 在 Spring Security SAML 身份验证请求中配置 POST ProtocolBinding

    Spring Security SAML 坚持在 SAML 身份验证请求中请求 Artifact 绑定 ProtocolBinding 属性
  • 小程序打印;小程序放弃安全权限; Windows 7 和 Java 7

    使用 Java Liveconnect 能够通过浏览器中的小程序访问打印机 对于我添加的访问权限permission java lang RuntimePermission queuePrintJob in C Program Files
  • Rfc2898DeriveBytes 与密码的 Sha2 哈希生成

    我最近知道使用 SHA256 为加盐密码生成密码哈希 在阅读了一些有关加盐密码和安全性的内容后 我看到rfc2898derivebytes and passwordderivebytes NET 中的类 使用有什么好处吗rfc2898der
  • php字符串是值类型吗?

    为什么php的string是值类型 每次将参数传递给函数时 每次进行赋值时 每次连接都会导致字符串被复制时 它都会被复制到各处 我的 NET 经验告诉我 它似乎效率低下 迫使我几乎在任何地方都使用引用 考虑以下替代方案 替代方案1 This
  • 解码 OAEP 填充时出错

    我的问题已经解决了一半 请帮助 我已使用数字签名的公钥成功加密了文本 但在解密时出现错误 解码 OAEP 填充时出错 我的代码如下 region Test Encryption public void a using var rsa new
  • 安全转义表名/列名

    我在 php 中使用 PDO 因此无法使用准备好的语句转义表名或列名 以下是我自己实现它的万无一失的方法 tn str replace REQUEST tn column str replace REQUEST column sql SEL
  • JavaScript 中的安全数据

    我必须为 Web 测试创建生成器 使用 HTML 和 JavaScript 测试必须离线和在线进行 正确答案和分数评估必须是生成的测试的一部分 最终用户的分数仅发送到服务器 无法在服务器上进行评估 并且服务器对问题一无所知 它只保存最终分数
  • AES 在汇编中的实现 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 大家好 我正在尝试构建一个代码来演示
  • 支持 API 28(Android Pie) 上的 Android StrongBox 的 Android 智能手机列表

    我需要 Android 9 中支持安全元件和 StrongBox 的 Android 手机列表 在哪里或如何找到该列表 我在 Samsung Galaxy S9 和 AVD Google Pixel XL API 28 上尝试了下面的代码
  • 使用 CreateRestrictedToken(LUA_TOKEN) 从提升的进程创建低/中进程

    我正在尝试从提升的进程创建中或低完整性进程 我知道还有其他类似的问题 但它们主要关注使用资源管理器或任务计划程序等解决方法 我想坚持使用CreateRestrictedToken CreateProcessAsUser 我认为一定可以以某种
  • 如何在 Web 应用程序中使用 Javascript 安全地访问 Windows Azure 移动服务?

    我需要一本 web javascript 安全入门书 根据如何使用 Windows Azure 移动服务的 HTML JavaScript 客户端 http www windowsazure com en us develop mobile
  • 存储外部站点(不使用 OAuth)的用户凭据的智能方法是什么?

    我意识到 一般来说 您不应该直接存储用户凭据 即以纯文本形式 相反 最好存储它们的某种加密形式 但是 假设我创建了一个与其他第三方网站交互的网站 假设这个第 3 方站点提供了一个 API 需要用户的凭据 使用该站点 进行身份验证 如果我的目
  • 保护 ASP.NET 网站中 Elmah RSS 源的安全

    我遵循了这个问题的答案在 ASP NET 网站中保护 Elmah 的安全 https stackoverflow com questions 1245364 securing elmah in asp net website限制对 elma
  • 对客户端 JavaScript 计算器使用 eval 安全吗?

    我正在制作一个计算器 作为用户浏览器的静态 HTML 页面 该页面并非旨在将任何信息提交回服务器 除了这个计算器之外 网页上不会出现任何其他内容 在这种情况下使用 eval 安全吗 或者换句话说 在这种情况下使用 eval 是否会导致额外的
  • FormsAuthentication:安全吗?

    Using 表单验证构建成asp net创建一个为经过身份验证的用户创建 cookie 的登录系统非常快速且简单 FormsAuthentication SetAuthCookie uniqueUsername false 与中的一些代码配

随机推荐

  • Python - 请求/RoboBrowser - ASPX POST JavaScript

    我正在移植一个 bash 脚本 该脚本使用curl 并将代码中的有效负载 POST 到 URL 并且可以正常工作 基本问题是 使用 robobrowser 我在使用页面表单发布时遇到了麻烦 逐步浏览该网站 登录 SubLogin aspx
  • 在opencv中求熵

    我需要一个像这样的函数entropyfilt 在matlab中 opencv中不存在 在Matlab中 J entropyfilt I 返回数组 J 其中每个输出像素包含输入图像 I 中相应像素周围 9 9 邻域的熵值 我写了一个函数在 C
  • 给类点击事件C#

    嗨 我只是想知道是否有一种方法可以为班级提供自己的点击事件 例如 我有一个卡片类 有没有办法知道用户何时单击该类中的矩形 显示卡片的图片 或者更好的是 我如何知道何时单击卡片矩形 要从 Windows 获取 鼠标已单击此处 消息 您需要有一
  • JTextArea 不动态更新

    我在一个类中有一个 JTextArea 我想动态更新它 目前它只显示我在所有处理完成后附加到它的文本 我尝试执行以下操作来修复它 public NewConsole initComponents public void write fina
  • 如何使用videoview流畅地播放url中的视频?

    我有一项活动VideoView 它正在播放来自 url 的视频 我所做的就是为了玩得顺利 我已经放了一个ProgressDialog在活动开始时 并在里面驳回它onPreparedListener这样才能玩得又好又流畅 但仍然没有帮助 视频
  • android - 如何使按钮闪烁?

    有没有什么方法 在代码中 使按钮持续闪烁 然后在按下时停止闪烁 有几种 具体取决于您所指的闪烁类型 例如 您可以使用 alpha 动画并在按钮第一次出现时启动它 当用户单击按钮时 在您的OnClickListener做就是了clearAni
  • 将围绕 sockaddr_storage 和 sockaddr_in 进行转换,打破严格的别名

    继我之前的question 我真的很好奇这段代码 case AF INET struct sockaddr in tmp reinterpret cast
  • 将原始 HTTP 请求转换为 HTTPWebRequest 对象

    在 NET 中 是否可以将原始 HTTP 请求转换为 HTTPWebRequest 对象 我确信 NET 内部正在这样做 知道 NET 的哪一部分实际上在处理这个问题吗 我可以调用它吗 或者是否有任何允许原始 HTTP 连接的外部库 我不相
  • dart 中的转义“正则表达式”

    我正在尝试捕获 dart 正则表达式中的符号 我的正则表达式如下所示 RegExp containsSymbolRegExp RegExp r lt gt 但是 我还需要让它捕获符号 但我不能把 放在那里 因为它会弄乱字符串 有什么想法如何
  • 如何比较数组中的日期以找到最早的日期?

    我有一个名为 dateArray 的变量 其中包含日期 例如 09 09 2009 16 07 2010 29 01 2001 我想用 for 循环找到最早的一个 所以结果是 29 01 2001 or dateArray 2 语言是jav
  • 选择窗口无法选择子窗口

    在我的 Java 代码中 单击 编辑描述 链接后 将打开一个窗口 即 Java 脚本窗口 此处的图像第一个给出带有属性的锚标记 第二个打开窗口 Image 1 Image 2 Window image Along with Page Sou
  • 在Python中将字符串二维列表转换回二维列表[重复]

    这个问题在这里已经有答案了 我刚刚开始玩Python 我知道我们可以使用 str 将任何列表转换为字符串 喜欢 gt gt gt l 1 1 2 2 3 3 gt gt gt l 1 1 2 2 3 3 gt gt gt type l
  • 太多的回溯:为什么这里有“重做”?

    我正在 Prolog 中做一个非常简单的练习 但跟踪中有些东西我不明白 该程序是一个 大于 gt 对表示为后继的整数 greater than succ 0 greater than succ A succ B greater than A
  • 如何清除p:dataTable中的所有输入字段?

    我将 JSF 2 0 与 PrimeFaces 一起使用 我有一个
  • CSS 位置 - 顶部 100% 不等于底部 0

    我在分配时注意到了这一点fixed定位到 css3 动画的元素 即top 100 没有得到相同的效果bottom 0 它定位文档外部的元素 而bottom 0 仍然显示整个元素 JSFiddle演示 css位置有相反的吗top 0 这会自动
  • Yocto 中支持 PHP 的 Apache2

    我正在使用 Yocto 创建一个包含 apache2 的构建 但我很难添加 php 支持 我之前运行过它 阅读 去年 但从那时起 meta openembedded 中的meta webserver 层发生了变化 来自元网络服务器中的自述文
  • 将外部 javascript 导入到 google apps 脚本 [重复]

    这个问题在这里已经有答案了 我正在尝试从 Google 电子表格 Google 文档 使用 Trello 但不确定如何导入 引用 链接使用其库所需的 javascript 文件 我唯一的其他选择是直接使用他们的 REST API 很好 但我
  • 如何在Tensorflow中将字符串张量转换为Python字符串?

    以下代码是批量数据提供程序 mat文件 但运行时出现以下问题 TypeError expected str bytes or os PathLike object not FIFOQueue 代码是 import numpy as np i
  • 强制绑定DataGridView生成列和行

    我以编程方式创建一个 DataGridView 对象 然后使用网格的 DataSource 属性将其绑定到 DataTable 创建网格后 我将其添加到 WinForms 的控件集合中 即 Form1 Controls Add grid 我
  • 银行式导航限制

    某些网络应用程序 尤其是银行网站 会阻止您使用浏览器的导航按钮 在新选项卡中打开链接甚至刷新页面 通常他们会警告您不要这样做 甚至终止会话 迫使您再次登录 他们是否遵循特定的架构模式来实现这一目标 他们的目标是什么 这如何提高安全性 他们可