返回首页
最新
Salesloft–Drift 数据泄露事件(更多背景 - <a href="https://news.ycombinator.com/item?id=45106340">https://news.ycombinator.com/item?id=45106340</a>)发生在今年八月,揭示了一个薄弱的集成如何波及超过700个组织(如Cloudflare、Palo Alto、Zscaler等)。攻击者从一个应用程序中窃取了令牌,并将其用作万能钥匙,窃取Salesforce、Google Workspace和Slack的数据。
在调查过程中,我发现没有明确的框架或控制措施来跟踪和改善集成安全。因此,我发布了《集成安全十大要点》(Integration Security Top 10,简称ISF),并在GitHub上开源。该列表的设计灵感来源于OWASP十大安全风险:简短、易记,并专注于SaaS与SaaS及API集成中最关键的风险。每个要点还附有可操作的“行动手册”,帮助将理论付诸实践。
我的目标是帮助组织避免在过去几周内发生在许多所谓“安全”公司的悲惨情况。我通过创建一套明确的控制措施,使组织能够查看并像检查清单一样使用这些措施,以解决集成安全问题。
在构建了几个 Tauri 桌面应用后,我不断遇到同样的问题:在 Windows、macOS 和 Linux 上没有可靠的方法来访问摄像头。每个项目都意味着要重新实现摄像头集成,处理平台特定的 API,以及调试权限问题。
因此,我开发了 CrabCamera——一个为您处理所有摄像头复杂性的 Tauri 插件。
它的功能包括:
- 一个 API,三个平台:相同的 Rust 代码可以在 Windows(DirectShow)、macOS(AVFoundation)和 Linux(V4L2)上运行
- 权限处理:在每个平台上自动请求摄像头权限
- 格式转换:处理平台格式与您的应用需求之间的复杂转换
- 错误处理:使用适当的 Rust 错误类型,而不是神秘的崩溃
- 热插拔:检测摄像头的连接和断开
它解决的问题:
在 CrabCamera 之前,为 Tauri 应用添加摄像头支持意味着:
1. 为每个平台编写独立的原生代码
2. 管理三种不同的权限系统
3. 手动处理格式转换
4. 调试平台特定的边缘情况
5. 随着操作系统 API 的变化维护所有内容
现在只需:
```rust
use crabcamera::Camera;
let camera = Camera::new()?;
let frame = camera.capture_frame().await?;
```
我为什么要开发它:
我正在开发一个植物监测应用(botanica),需要可靠的摄像头访问以进行延时摄影。现有的解决方案要么被遗弃,要么特定于某个平台,或者需要复杂的原生绑定。
Tauri 生态系统正在快速发展,但摄像头支持是一个明显的空白。每个桌面应用最终都需要摄像头访问——视频通话、文档扫描、增强现实功能、安全监控。
技术亮点:
- 使用 nokhwa 进行繁重的工作,但将其封装在 Tauri 友好的 API 中
- 全面支持异步/等待
- 高效的内存流媒体视频捕获
- 内置图像处理管道
- 可扩展的插件架构
接下来的计划:
- WebRTC 集成用于视频通话
- 内置条形码/二维码扫描
- 人脸检测钩子
- 针对 4K 流的性能优化
该 crate 采用 MIT 许可证,并可在 crates.io 上获取。我非常希望能收到其他在摄像头集成方面有经验的 Tauri 开发者的反馈。
链接:
- Crates.io: https://crates.io/crates/crabcamera
- GitHub: https://github.com/Michael-A-Kuykendall/crabcamera
- 文档: https://docs.rs/crabcamera