首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何为非常不确定的行为(如并发)设计安全的 API,使用这些 API 时如何确保安全

.NET 中提供了一些线程安全的类型,如 ConcurrentDictionary,它们的 API 设计与常规设计差异很大。如果你对此觉得奇怪,那么正好阅读本文。...---- 不确定性 像并发集合一样,如 ConcurrentDictionary、ConcurrentQueue,其设计为线程安全,于是它的每一个对外公开的方法调用都不会导致其内部状态错误...让你在获取对象实例的时候可以通过工厂方法去创建实例。 如果你需要设计这种状态极易变的 API,那么需要针对一些典型的设计场景提供一次调用就能获取此时此刻所有状态的方法。...虽然我们使用 Interlocked.CompareExchange 原子操作,但因为后面依然涉及到了多次状态的获取,导致不得不加锁才能确保安全。...关于通用 API 设计指导,你可以阅读我的另一篇双语博客: 好的框架需要好的 API 设计 —— API 设计的六个原则 - walterlv 本文会经常更新,请阅读原文: https://blog.walterlv.com

17320

如何为你的 Windows 应用程序关联 URL 协议,以便在浏览器中也能打开你的应用

移动程序关联 URL 是常态,桌面应用程序其实也早就支持关联 URL 以便在浏览器中打开。当我们的程序关联了一个 URL 协议之后,开发的网站上就可以通过这个 URL 与程序进行互操作,这很互联网。...对于 Windows 桌面应用来说,关联一个 URL 协议是通过修改注册表来实现的。本文介绍如何为你的应用关联一个 URL 协议。...---- URL 协议 一个常用的 URL 协议是这样子的:https://walterlv.com。前面的 https 就是协议名称,而 https:// 放在一起就是在使用 https 协议。...本文我们将定义一个 walterlv 协议,然后关联到我们本地安装的一个桌面应用程序上,然后使用 walterlv://open?id=1 来打开一个 id 为 1 的逗比。...在正确填写了注册表的以上内容之后,在 Chrome 里打开此链接将看到以下 URL 打开提示: 关于注册表路径的说明: HKEY_LOCAL_MACHINE 主键是此计算机上的所有用户共享的注册表键值

2.4K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    利用Docker容器的不安全部署获取宿主机权限

    前言 滥用容器( container)及逃逸的方法有多种,本文将讨论最基本的一种,即滥用docker socket来逃逸容器并在宿主机上以root身份执行代码。 ?...创建网络 首先,我们在创建容器的地方创建一个docker网络: docker network create pwnage 启动易受攻击的容器 在本示例中,我将使用受SambaCry漏洞(CVE-2017...Samba Cry存储库中有一个漏洞利用代码,但这里我将使用Metasploit,因为它更容易上传我所需的内容。...获取shell 下一步我们要做的是,针对宿主机运行漏洞利用程序获取shell。...由于docker在宿主机上是以root身份运行的,因此它也具有root权限。我们可以滥用它来执行多项操作。

    2.1K20

    【原创干货】我是如何为公有云和XX联邦政府提供安全的Linux操作系统的解决方案的?

    我大约是在2012年左右时,在网络和私有云两大领域之外,又在操作系统领域得到一个非常有挑战的新机遇:为公司超过30万台的服务器提供安全的Linux操作系统解决方案,并为操作系统领域提供24x7应急响应和支持服务...它有很多针对Oracle产品的加强和Bug Fix,也被Oracle云和Oracle集成系统(如Oracle Exadata等)使用。...另外,我的一位同事写了个很棒的工具,可以将新版本的kickstart模板和老版本的差别自动转化为“零停机时间”的升级程序。...这是一个用于自助服务的应用程序,系统运维部门能够通过对CVE,报告和建议的自动评估来进行Oracle Linux OS安全评估。此外,它还支持STIG的操作系统强化和其他合规性修复任务。...本文旨在简单阐述一下作为一个IT系统架构师,我工作中是如何思考并持续改进生产环境中Linux操作系统安全性和可靠性的。其目的在于抛砖引玉,带动大家一起讨论Linux操作系统安全性及改进方案。

    71520

    王录华:我是如何为公有云和XX联邦政府提供安全的Linux操作系统的解决方案的?

    From 王录华程序猿的人类学 我大约是在2012年左右时,在网络和私有云两大领域之外,又在操作系统领域得到一个非常有挑战的新机遇:为公司超过30万台的服务器提供安全的Linux操作系统解决方案,并为操作系统领域提供...它有很多针对Oracle产品的加强和Bug Fix,也被Oracle云和Oracle集成系统(如Oracle Exadata等)使用。...另外,我的一位同事写了个很棒的工具,可以将新版本的kickstart模板和老版本的差别自动转化为“零停机时间”的升级程序。...这是一个用于自助服务的应用程序,系统运维部门能够通过对CVE,报告和建议的自动评估来进行Oracle Linux OS安全评估。此外,它还支持STIG的操作系统强化和其他合规性修复任务。...本文旨在简单阐述一下作为一个IT系统架构师,我工作中是如何思考并持续改进生产环境中Linux操作系统安全性和可靠性的。其目的在于抛砖引玉,带动大家一起讨论Linux操作系统安全性及改进方案。

    88240

    渗透测试TIPS之Web(一)

    15、“记住我”的功能是否会过期,查看cookie中是否有能够利用的空间; 16、测试用户唯一性; 17、测试如账号密码是否直接在url中传输; 18、在用户名和密码字段中测试空字符(%00); 19...是否限定在当前域,是否设置了httponly、secure属性; 13、测试访问控制功能; 14、利用多个用户测试控件有效性; 15、测试不安全的访问控制方法,如请求参数、referer头等; 16、持久性...facebook b.用户被重定向到facebook http://facebook.com/oauth?...; 3、NS响应attacker.com的A记录、ip地址等; 4、浏览器获取资源,如/secrets 5、DNS响应过期,现DNS服务器使用victim.com的IP进行响应; 6、浏览器将在attacker.com...源中获取victim.com/secrets信息; 7、攻击者可以将CNAME条目返回给爆破的内部主机名; 跨域请求 1、浏览器将执行具有标准内容类型的GET请求和POST 2、否则,浏览器将执行OPTIONS

    2.1K20

    DNS泛解析与内容投毒

    Google和Facebook的一个有趣的漏洞,我在去年十月份利用一些空闲的时间在几家悬赏漏洞的公司当中测试,这个bug Google奖励了我5000美元,Facebook奖励了我500美元。...0x01 Wilcard DNS 和 Content Poisoning 应用程序从HTTP Host头与domain name中不验证产生完整的 URL 会造成主机名中毒。...) 在测试这个问题时,我发现了一个不一样的主机头攻击方式,可能会绕过浏览器的通配符。...你可以找到有关反向DNS记录或通过搜索发给通配符域的SSL证书,如 *.sites.google.com 刚开始测试时,在drive.google.com域内我无法在URL当中使用.-....0x04 结论 Google和Facebook的安全团队处理的都很好。这个bug是非常好玩的,它与OWASP的Top 10的内容都不相同。

    1.6K20

    通过Password Vault的XSS漏洞获取用户密码测试

    那么,作为存储如此敏感数据的管理工具是否应该保证足够的安全性呢? ? 场景 在我遇到的这个场景中,其中不仅包含了账户密码它还包含了该公司员工的密码。...在仔细观察应用程序并完成各个请求之后,我发现应用程序会从位于应用程序的/api/的API中检索不同的信息。 在对应用程序进行一些爬行和抓取后,我发现了一些API端点: ?...请求完成后,将解析响应并从响应中获取值,例如标题,URL,用户名,密码。然后将这些值添加到虚拟变量“data_chunks”进行最终的处理。 ?...其实它也可以从外部主机被加载,但这里我为了避免CORS设置所带来的麻烦,所以才使用了这种方法。 现在我将托管一个内容如下的exploit.html文件: ?...现在只需为exploit.html提供一个URL,攻击者就可以将用户重定向到一个注入了payload的页面上。 成功利用后,我们将获取到以下数据: ?

    1.6K30

    为什么用 React 一定要配合框架(Next,Remix)使用?

    Hi,大家好我是 ssh,今天我看到 Leerob 分享的 Why You Should Use a React Framework,讲述了他关于为什么要使用 React 框架(如 Next,Remix...React 的许多创新都来自于多年来在Facebook.com上通过这个框架试用新功能(如Server Components)。...使用基于最新 React UI 原语构建的开源 React 框架,是模拟 Facebook 开发人员用于构建世界上最大的 Web 应用程序的工具的最接近的方法。...(例如使用一致性和 linting) 我们应该如何为给定页面加载数据?(例如服务器端还是客户端) 我们应该如何部署 React 应用程序?...此外,许多 React 框架都有详细的文档,介绍如何逐步采用它们的工具,包括提供 low-level 功能,如URL 代理,允许你将一些传入的请求重写到你的新框架中,以适应现有的应用程序。

    93240

    跨站Websocket Hijacking漏洞导致的Facebook账号劫持

    因为该项Facebook新近推出的应用还处于测试阶段,只有少数安全人员可以受邀进行访问测试,所以以下漏洞解释中已对应用名称进行了隐匿,且暂不提供相关的漏洞利用代码。...漏洞原因 由于该项Facebook新近推出的应用托管在facebook.com的子域名之下,并允许其本地IP地址(如0.0.0.1/8 或 192.168.1.1/8)包含成为Origin主机头,该应用基于随机数的安全登录...以下为用Facebook内部的本地IP地址成功构造为Origin主机头建立的Websocket连接: 综上分析来看,由于Origin主机头仅允许本地IP地址,因此与受害者在同一本地网段的攻击者可构造恶意...另外,也可以在受害者手机中的安装恶意APP来启动无权限限制的HTTP服务,然后向受害者同网段的其他IP地址的Facebook用户发送经过构造的deep-link形式的恶意URL链接,实现扩大化攻击。...之后,我用包含这些修改的Javascript脚本文件启动了一个HTTP服务; 2、利用上述启动的http服务,我向同一网段的受害者发送了一个恶意链接之后,其中涉及的脚本会与REDACTED.facebook.com

    1.3K10

    走近科学:我是如何入侵Instagram查看你的私人片片的

    维基百科这样介绍: “Instagram是一个在线图片分享、视频共享和社交网络服务的网站,允许用户将拍摄的照片和视频,通过应用数字滤波器分享到 他们各种各样的社交网络,如Facebook、Twitter...攻击者可以执行用户(受害者)在web应用程序正在进行的身份验证。 一个成功的CSRF利用可以通过他的Instagram文件弄到到用户的个人数据(如照片和个人信息)。...介绍: 几个月前,我在Instagram的平台寻找它的安全漏洞。我猜测网站已经被审核了,是安全的。所以我把我努力的重点放在了Instagram的移动应用程序中(iOS和Android)。...首先,我把抓取的所有资源用来检测并寻找应用程序的新的攻击点,还测试了典型的安全漏洞,像跨站点脚本或代码注入,但是这一次,我没有发现任何空点来允许我注入代码(TT)。...我集中我的精力在Android应用程序的这一部分,我决定研究如何请求用户公开他的个人资料。

    6.6K70

    【云安全最佳实践】学习 Web攻防的一点心得

    一、何为 Web 攻防前端 Web 系统经常遭受网络攻击,为了预防这些网络攻击,我们需要了解一些常见的攻击手段。...攻击者通过在目标网站上注入恶意脚本,使之在用户的浏览器上运行。利用这些恶意脚本,攻击者可获取用户的敏感信息等,进而危害数据安全。...4、URL跳转漏洞定义:借助未验证的URL跳转,将应用程序引导到不安全的第三方区域,从而导致的安全问题。...5、SQL注入SQL注入是一种常见的Web安全漏洞,攻击者利用这个漏洞,可以访问或修改数据,或者利用潜在的数据库漏洞进行攻击。解决方案:通过前端 Nginx 限制特殊字符,或在网关层进行限制。...我们也可以选择腾讯云旗下的安全产品:T-Sec 云防火墙、T-Sec Web应用防火墙、T-Sec 主机安全、容器安全服务TCSS、T-Sec 安全运营中心、T-Sec 漏洞扫描服务 等.

    64000

    实用,完整的HTTP cookie指南

    这有许多用途发如:用户跟踪、个性化,以及最重要的身份验证。...现在尝试访问 /contact/ 路由: url -I http://127.0.0.1:5000/contact/ --cookie cookies 在 Flask 应用程序的终端中运行如下命令,可以看到...coookiename=subd0m41n-c00k13 当域在cookie创建期间被省略时,浏览器会默认在地址栏中显示原始主机,在这种情况下,我的代码会这样做: response.set_cookie...也就是说,我在浏览器中访问该URL,并且如果我访问相同的URL或该站点的另一个路径(假设Path为/),则浏览器会将cookie发送回该网站。...想要针对API进行身份验证的前端应用程序的典型流程如下: 前端将凭证发送到后端 后端检查凭证并发回令牌 前端在每个后续请求上带上该令牌 这种方法带来的主要问题是:为了使用户保持登录状态,我将该令牌存储在前端的哪个地方

    6K40

    MIT 6.858 计算机系统安全讲义 2014 秋季(二)

    Frames 获取 frame 的 URL 的 origin OR 原始域名的后缀。...Drawbridge 在 libOS 实现 Win32 的顶部提供一个小接口 小接口保护主机操作系统免受应用程序影响(类似于本机客户端) Haven 保护应用程序免受主机操作系统的影响...主机 drawbridge 主机使用 OS 调用实现窄 API Shield 服务 虚拟内存 enclave 从 0 开始(处理应用程序、libos 的空指针引用) 跟踪应用程序/libos...获取它们框架 URL 的来源 -或- 获取**调整后的document.domain**的来源 一个框架的document.domain最初是从 URL 中正常派生的。...Django 在安全方面可能比一些替代方案如 PHP 或 Ruby on Rails 更好,但细节决定成败。 正如我们将在两次讲座后讨论的那样,研究人员发明了一些提供明显更好安全性的框架。

    23610

    HTTP cookie 完整指南

    这有许多用途发如:用户跟踪、个性化,以及最重要的身份验证。...现在尝试访问 /contact/ 路由: url -I http://127.0.0.1:5000/contact/ --cookie cookies 在 Flask 应用程序的终端中运行如下命令,可以看到...也就是说,我在浏览器中访问该URL,并且如果我访问相同的URL或该站点的另一个路径(假设Path为/),则浏览器会将cookie发送回该网站。...[](facebook.com) 浏览器加载上面代码时,就会向 Facebook 发出带有 Cookie 的请求,从而 Facebook 就会知道你是谁,访问了什么网站。...想要针对API进行身份验证的前端应用程序的典型流程如下: 前端将凭证发送到后端 后端检查凭证并发回令牌 前端在每个后续请求上带上该令牌 这种方法带来的主要问题是:为了使用户保持登录状态,我将该令牌存储在前端的哪个地方

    4.3K20

    Spring Boot 与 OAuth2

    要在不同的主机或端口上运行它们,你需要注册自己的应用程序,并将凭据放在配置文件中。...如果你使用默认值,则不会在本地主机之外泄漏你的Facebook或Github凭据,但要小心你在互联网上公开的内容,并且不要将你自己的应用程序注册置于公共源代码管理中。...你刚刚用OAuth2的编写的应用程序是一个客户端应用程序,它使用授权代码授权从Facebook(授权服务器)获取访问令牌。...认证件将你的应用与Spring安全的其他部分结合在一起,所以一旦你的应用程序与Facebook的同步,它就会和其他安全的Spring应用程序一样。...请记住,如果你使用自己服务器中的示例版本向Facebook或Github(或类似的)注册,并获取自己主机地址的客户端凭据。记住不要将这些凭据放在公开的代码管理工具中!

    10.6K120

    史上最全解析:从输入 URL 到页面展示到底发生了什么?

    HSTS 存在的问题细心的你可能会发现,HSTS存在一个比较薄弱的环节,如浏览器第一次访问或者没有域名HSTS信息,那么第一次请求仍然是不安全的,一般有两种解决方案:1、现代浏览器内置的预加载HSTS。...这个GET请求指明使用 HTTP 1.1 GET方法 获取的URL:http://facebook.com。...对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持安全POST 比 GET 安全,因为数据在地址栏上不可见,且GET请求参数会被完整保留在浏览器历史记录里...然而,从传输的角度来说,他们都是不安全的,因为 HTTP 在网络上都是明文传输的,只要在网络节点上捉包,就能完整地获取数据报文,需要使用 HTTPS 加密保证安全。...浏览器渲染HTML当浏览器收到 HTML 响应后就开始渲染整个页面:发送嵌入对象请求当浏览器渲染HTML时,它会注意到需要获取其他URL的标记。

    1.6K62

    Spring Security 的常用方法介绍

    当使用Spring Security时,有几种常见的方法和配置模式可以帮助您更好地保护和管理应用程序的安全性。...注销功能 Spring Security 提供了注销功能,使用户可以安全地退出应用程序,并进行相关清理操作(如使记住我 token 失效)。...OAuth2 和 OpenID Connect Spring Security 提供了 OAuth2 和 OpenID Connect 的支持,使您可以在应用程序中集成第三方身份验证提供者,如 Google...OAuth2 用户服务 } 总结 Spring Security 提供了丰富的功能和配置选项,可以帮助您轻松地保护和管理应用程序的安全性需求。...随着 Spring Security 的不断发展和更新,建议查阅最新的官方文档和社区资源,以获取最佳实践和安全性建议。

    12010

    PwnAuth——一个可以揭露OAuth滥用的利器

    二、何为OAuth OAuth 2.0被描述为“一种开放的协议,允许从Web、移动和桌面应用程序以简单标准的方法进行安全授权……”它已成为诸如亚马逊,Google,Facebook和微软等主要互联网公司的事实协议...攻击者可能会创建恶意应用程序,并使用获取的访问令牌通过API资源获取受害者的帐户数据。访问令牌不需要知道用户的密码,并能绕过双因素认证。...四、PwnAuth PwnAuth是我写的一个Web应用程序框架,它使企业更容易测试其检测和响应OAuth滥用活动的能力。...五、缓解措施 FireEye的技术包括基于网络的签名以检测潜在的恶意OAuth许可URL。攻击者倾向于将某些范围包含在可检测到并标记的恶意应用程序中。...随着人们将更多服务迁移到云中,企业应小心锁定第三方应用程序的访问权限,并确保其监控和检测策略涵盖应用程序许可授予。企业和安全专业人员可以使用PwnAuth来测试他们检测和响应这种新型攻击的能力。

    1.7K20

    2020年及未来的软件编程趋势预测

    —– 亚伯拉罕·林肯 RUST 将会成为主流 Rust 是一种多范式的系统编程语言,专注于安全性 — 尤其是并发的安全性。...Rust 在语法上与 C++ 类似,但它旨在提供更好的内存安全性的同时保持高性能。 我们已经看到了 Rust 编程语言四年的强劲增长。我认为2020年将是 Rust 正式成为主流的一年。...随着 Facebook 在 Rust 上建立 Libra — 这个 Facebook 有史以来最大的项目 — 我们即将看到 Rust 真正取得的成就。...典型的 REST API 需要从多个 URL 加载,但 GraphQL API 可以在单个请求中获取您的应用程序所需的所有数据。...现在是成为 JavaScript 开发人员的最佳时机。工资正在上涨,社区一如既往地活跃,就业市场巨大。如果你对学习 JavaScript 很感兴趣,那么我推荐“你不懂 JS”系列丛书。

    94830
    领券