白名单和黑名单安全性哪个更好,或两者兼而有之? [关闭]

2023-11-24

我很快就会构建一个网络应用程序,我需要一个安全模型,以便不同的用户可以访问应用程序的不同部分和/或应用程序的特定部分内的不同数据集。我正在争论以下两种实现安全性的方法:

白名单:默认情况下,用户无权访问任何内容,但会被授予访问他们需要的内容的权限。

or

黑名单:默认情况下,用户可以访问所有内容,并且他们不需要的内容的访问权限将被删除。

是否有关于首选方法的最佳实践?如果有另一种方法可以更好地解决这个问题,我们也很想知道。

Thanks.


来自经典论文,其中描述了八个重要的设计原则,其中之一是:

故障安全默认设置:基本访问 根据许可而不是根据许可做出决定 排除。这个原则,建议 E. Glaser 在 1965 年提出,8 意味着 默认情况是缺乏访问权限, 并且保护方案确定 访问的条件 允许的。另一种选择是,其中 机制试图识别 访问应具备的条件 被拒绝,提出错误 安全系统的心理基础 设计。保守的设计必须是 基于为什么对象应该 易于访问,而不是为什么它们 不应该。在一个大系统中有些 对象将不充分 考虑到,所以默认缺乏 许可更安全。一个设计或 机制实施错误 给予明确许可的倾向 因拒绝许可而失败,安全 情况,因为很快就会 检测到。另一方面,设计 或实施错误 明确排除的机制 允许访问往往会失败 访问失败,可能会发生 正常使用时不会被注意到。这 原则适用于外在 保护机制的出现 及其底层实现。

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

白名单和黑名单安全性哪个更好,或两者兼而有之? [关闭] 的相关文章

随机推荐

  • 如何用关系代数求 MAX?

    使用数据库时 如何使用关系代数求 MAX 假设您有一个关系 A 具有单个属性 a 减少一个更复杂的关系是关系代数中的一个简单任务 我确信您已经做到了这一点 所以现在您想要找到最大值A 中的值 一种方法是找到 A 与其自身的叉积 请务必重命名
  • 从定期异步请求创建 observable

    我想要一种将异步方法转换为可观察方法的通用方法 就我而言 我正在处理使用的方法HttpClient从 API 获取数据 假设我们有方法Task
  • 为什么在 Ruby 中应该避免使用 then 关键字?

    一些 Ruby 风格指南中提到 您应该 永远不要使用 就我个人而言 我认为 then 关键字可以使代码更密集 这往往更难阅读 这个建议还有其他理由吗 我几乎从不使用then关键词 然而 有一种情况我认为它极大地提高了可读性 考虑以下多条件
  • 除了 new object() 之外,还有什么理由要锁定其他东西吗?

    object theLock new object lock theLock 我总是用一个new object 为此 但我想知道 是否有任何情况下您会锁定更具体的类型 在我看来 任何引用类型都可以被锁定 使用虚拟对象的原因是为了避免常见的锁
  • Angular2 - 如何使用具有动态 url 的路由器

    假设我有一个嵌套的 itemListComponent 它是 rootComponent 的子组件 使用以下模板 span a item title a span 由 Json 服务提供的路径 item url 可能具有以下路径结构之一 c
  • 将解决方案应用于实际数据时结果不正确

    我尝试将此问题中提供的解决方案应用于我的真实数据 选择多索引数据框中的行 不知怎的 我无法得到它应该给出的结果 我已附上可供选择的数据框以及结果 我需要的 应返回第 3 11 和 12 行 当您连续添加 4 列时 也应选择 12 现在不是
  • Heroku 可以使用哪些级别的日志记录?

    我有一个在 Heroku 上运行的 Rails 应用程序 它运行良好 我让它以调试级别日志记录运行 但现在我切换回 INFO 还有哪些其他级别的调试可用 当运行生产时 我应该使用什么级别的日志记录 在 Heroku 上 您可以使用 LOG
  • 为什么我无法运行我的 Node.js Express Web 应用程序

    Node js 和 Express 生成器确实非常方便且易于理解 但是 我无法通过运行 c my application root gt DEBUG my application bin www 来启动我的服务器 Windows 似乎不理解
  • 找不到 matplotlib 数据文件

    我是 python 新手 我正在尝试使用 pyinstaller 从 py 脚本创建 exe 但在尝试运行 exe 时出现此错误 无法找到 matplotlib 数据文件 当我在 python 空闲中运行脚本时 我没有收到此错误 我试过了
  • Eclipse CDT Indexer 不能完全识别 c++11

    首先 我了解用于启用 c 11 支持的 std c 11 标志及其放置位置 我已附加 std c 11 to Project gt Properties gt C C Build gt Settings gt Tool Settings g
  • Internet Explorer-10 websocket 中的 IPv6 地址给出语法错误

    我从服务器获取 ipv6 地址 然后我为 websocket 创建 url 我的网址看起来 喜欢 ws xxxx xxxx xxxx xxxx xxxx xxxx 十进制端口 其中 x 十六进制的 0 f 这个网址在 chrome 和 fi
  • $_SERVER["REMOTE_ADDR"] 提供服务器 IP 而不是访问者 IP

    我正在尝试跟踪访问者的 IP 地址 使用时 SERVER REMOTE ADDR 我得到的是服务器的IP地址而不是访问者的IP地址 我在多个位置的多台机器上进行了尝试 它们都产生了完全相同的 IP 是否有一些 PHP 服务器设置可能会影响这
  • Ruby 中的有符号和无符号整数

    像 C 一样 Ruby 是否有有符号和无符号整数 如果有的话 是否意味着 String 类的 length 方法返回有符号整数 因为在 C 整数中 如果未指定则意味着有符号 Ruby 实现整数的方式使得有符号 无符号的区别无关紧要 因为 R
  • 如何排列 TPopupMenu 以使其准确地将自己定位在按钮上方?

    我想要一个按钮上方的弹出菜单 Delphi 包装 Win32 菜单系统的方式似乎排除了底层 Win32 API 提供的每种模式或标志 而这些模式或标志当时并没有出现在 VCL 作者的脑海中 一个这样的例子似乎是TPM BOTTOMALIGN
  • jQuery UI DatePicker - 禁用除每个月的第一天和第 15 天之外的所有日期

    我想禁用此日期选择器上除每月 1 日和 15 日之外的所有日期 我引用了这个已回答的问题 但我只能返回一个日期 我是 javascript 的新手 jQuery UI DatePicker 禁用除每月最后一天之外的所有日期 任何帮助都会很棒
  • Python 中的 3D Dicom 可视化

    我是 3D 图像处理新手 我想知道如何用python查看dicom系列 我尝试使用 matplotlib 和 VTK 在 matplot 中 我无法像使用 volViewer 在 matlab 中查看那样查看体积 关于 VTK 我无法导入
  • 替换 csv 文件中的新行 (\n) 字符 - Spark scala

    为了说明问题 我采取了一个测试集 csv 文件 但在实际情况下 问题必须处理超过 TeraByte 的数据 我有一个 CSV 文件 其中的列用引号括起来 col1 但是当数据导入完成后 一列包含换行符 n 当我想将它们保存为 Hive 表时
  • JQuery 中的条件规则验证

    我在用jQuery 验证 现在我希望只有在满足某些条件时才调用我的规则 即我想要 AppSelectField is hidden 回来false 然后我才调用规则 我的规则如下 function RequestLock validate
  • C++ 在 << 之后使用 stringstream 作为参数

    是否可以编写一个采用字符串流的方法并使其看起来像这样 void method string str void printStringStream StringStream ss method ss str 并且可以这样调用 stringst
  • 白名单和黑名单安全性哪个更好,或两者兼而有之? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我很快就会构建一个网络应用程序 我需要一个安全模型 以便不同的用户可以访问应用程序的不同部分和 或应用程序的特定部分内的不同数据集 我正在争论以下两种实现安全性的方法 白名单 默认情况下