强化修复经常被误用的身份验证

2024-03-19

当我使用 Fortify 进行扫描时,我在下面的代码中遇到了诸如“经常被误用:身份验证”之类的漏洞。这个问题有解决办法吗? 我看过相关帖子,但没能找到解决方案。使用 ESAPI,我提供了主机名和 ipadress 的正则表达式,但它不起作用。

addr.getHostAddress()
java.net.InetAddress.getByName(nameServiceHost);
java.net.InetAddress.getLocalHost().getCanonicalHostName()
localhost.getHostName()

所有其他答案都尝试通过不使用内置 API,而是使用命令行或其他方式来提供解决方法。然而,他们忽略了实际的问题,这里的问题不是 API,而是 DNS 可用于身份验证的假设。

攻击者可以spoof https://en.wikipedia.org/wiki/DNS_spoofing,即伪造,DNS 响应伪装成有效的调用者。他们还可以使用IP地址欺骗 https://en.wikipedia.org/wiki/IP_address_spoofing在不攻击 DNS 的情况下显得是有效的调用者。

TL;DR 不使用 DNS 或呼叫者 IP 作为身份验证源。相反,使用 SSL/TLS 进行加密连接,然后您可以使用基本身份验证 https://www.rfc-editor.org/rfc/rfc7617, Oauth2 https://www.rfc-editor.org/rfc/rfc6750甚至更好客户端证书又名 mTLS https://en.wikipedia.org/wiki/Mutual_authentication反而。

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

强化修复经常被误用的身份验证 的相关文章

随机推荐

  • 相当于android中的timeIntervalSinceReferenceDate

    有没有一种方法可以计算相对于日期的时间间隔 与 iPhone 中的 timeIntervalSinceReferenceDate 非常相似 谢谢 System currentTimeMillis 返回自 1970 年 1 月 1 日午夜以来
  • 使用 bootstrap/angularjs 可编辑组合框

    我没有得到任何将组合框作为选择和输入的解决方案 这意味着如果用户选择不在每个填充列表中 那么用户应该能够输入他的选择值 用户的选择 选择或输入 应该在 AngularJS 中作为 ng model 进行设置和检索 thanks ui sel
  • 在 Perl 中我应该使用什么来代替 printf ?

    我需要在 Perl 中使用一些字符串替换来简化翻译 即替换许多 print Outputting n numbers 通过类似的东西 printf Outputting d numbers n 但是 我想用更易于人类解析的内容替换 prin
  • 如何仅使用查找和替换来查找并计算字符串中子字符串的所有出现次数?

    输入需要更低 最后程序必须打印出现的次数 例如内存 smthing str input if smthing smthing lower smthing find mem 我对此彻底崩溃了 所以我无法走多远 我忘了告诉你我不能使用计数或列表
  • openlayers 3 可以使用 gif 渲染动画标记吗

    我想问如何让标记像 openlayers 2 一样显示动画 gif 图片 它可以显示动画标记 我想要的是显示动画 gif 标记而不使标记移动 这可能吗 style anchorXUnits fraction anchorYUnits pix
  • 如何在 Emacs 中为 LaTeX 模式定义两个 ispell 字典?

    我有一份包含许多第二语言引文的文档 我如何将第二语言定义为 Ispell 我在文件顶部有这个 Local IspellDict brasileiro 我尝试了这个 但没有成功 Local IspellDict brasileiro engl
  • Java 中的异步事件调度

    我正在将 C 程序移植到 Java 该程序大量使用委托和委托的BeginInvoke异步通知事件的方法 以数据通信线程为例 它可能必须将其状态以及 GUI 通知给另一个工作线程 在我看来 通知不同班级的各种事件的最佳方法是有一个IClass
  • JavaScript 中的 getElementsByClassName().forEach() 函数不起作用

    我试图使用 JavaScript 通过类名获取 HTML 的每个元素 然后根据 a 中的值更改其高度和宽度range object onchange 浏览器显示错误 document getElementsByClassName forEa
  • VB6 有什么好的 TDD 工具或资源吗?

    是的 我知道我已经落后于时代了 但是我这里有一个古老的 VB6 编辑器应用程序 我相信没有人会很快升级到 NET 它使用了几个第三方 DLL 工具 并且由于它仍然使用旧的 RichEdit 控件 我基本上可以仅用这个工具来创建我自己的 Bu
  • 匹配法语和德语字符的正则表达式

    我正在解析请求参数以查找任何易受攻击的字符以防止 XSS 威胁 我们的网络应用程序支持英语以外的法语和德语 我使用以下正则表达式来实现此目的 但它无法处理法语和德语 a zA Z0 9 r n 对此的任何建议都将受到高度赞赏 p L 将匹配
  • 如何确定 PostScript 字体的高度和深度?

    我正在寻找估计 PostScript 字体高度 上升部分的空间 和深度 下降部分的空间 的 PostScript 代码 字体的边界框可以吗 FontBBox 用于此目的 这是我的问题的一些背景 字体的字形位于基线上 显然 带有下降部分的字形
  • 使用并行赋值交换数组元素

    感兴趣这个问题 https stackoverflow com questions 4181808 swapping in ruby 我玩过一些数组和方法调用的并行赋值 这是一个典型的示例 尝试按数组中的值交换两个成员 deck A B C
  • symfony2创建没有实体类的表单

    使用Symfony2 3 4 我正在尝试创建一个不使用类型的表单 它实际上是一个非常小的表单 只有两个选择从数据库加载它们的选项 到目前为止它有效 我不能做的是获取表单数据 在控制器 提交时 我尝试按照说明进行操作here http sym
  • Firebase Firestore,查询用户朋友的帖子

    我正在寻找使用 Firebase 创建社交媒体源 我的数据结构如下 users uid details friends uid friends sub collection fuid details posts postId postedB
  • lock(){} 是锁定资源,还是锁定一段代码?

    我仍然很困惑 当我们写这样的东西时 Object o new Object var resource new Dictionary
  • 是否可以指定何时运行构建功能?

    TeamCity 8 1 4 内部版本 30168 我注意到构建功能始终作为构建步骤中第一步的第一部分运行 但是是否可以使构建功能运行 例如作为步骤2的第一部分 或者作为 Step1 的最后一部分 任何帮助表示赞赏 如果感兴趣 这是我的具体
  • 如何在 R 数据框中用 NA 替换空字符串?

    我的第一个方法是使用na strings 当我从 csv 读取数据时 由于某种原因这不起作用 我也尝试过 df df lt NA 这给了我一个错误 不能使用矩阵或数组进行列索引 我只尝试了该专栏 df col df col lt NA 这会
  • 试飞已过期

    我正在尝试使用试飞 https developer apple com app store Testflight 新的 分享我的应用程序 我现在已经与我的 3 位内部测试人员分享了iTunes连接 https itunesconnect a
  • JPA:查询实体内的可嵌入列表

    我正在尝试根据实体列表中的某些条件 提取 可嵌入类 借助 JPQL 或 Criteria API 我不是这方面的专家 所以请帮助我 已经用谷歌搜索了 4 个小时 没有任何结果 这些是课程 Entity public class PostOf
  • 强化修复经常被误用的身份验证

    当我使用 Fortify 进行扫描时 我在下面的代码中遇到了诸如 经常被误用 身份验证 之类的漏洞 这个问题有解决办法吗 我看过相关帖子 但没能找到解决方案 使用 ESAPI 我提供了主机名和 ipadress 的正则表达式 但它不起作用