c# - C# 安全风险
问题描述
我正在开发一个小型 C# 应用程序,它充当某个 Web 协议(myprotocol://blafoobar)的处理程序。因此,每当用户单击此类 Web 链接时,Windows 都会调用处理程序。然后它解析 URI 并执行某些操作。
这当然可能是一个安全风险。一种可能的攻击向量是,攻击者向用户提供恶意链接:“myprotocol://someevilstuff”。然后,由于缓冲区溢出等,URI 的解析会导致我的应用程序暴露一些意外行为(<-我不是这方面的专家)。
所以我有一堆问题:
- C# 通常对缓冲区溢出等更健壮吗(因为总是检查数组边界)?
- C# 字符串类是否相当安全(拆分等)?
- 是否有一些我应该注意/避免的一般性建议?
解决方案
C# 通常对缓冲区溢出更健壮吗
就是这样,编写好的 C# 代码 - 基本上你必须一直检查分配的内存。也就是说,除非您的应用程序明确违反信任边界(不安全代码、调用本机库),否则您是完全安全的。100% 不太可能,但是很多人都在努力修复那里的每个错误。
C# 字符串类是否相当安全(拆分等)?
是的。
是否有一些我应该注意/避免的一般性建议?
不是真的在技术层面上。在逻辑层面 - 使可能的攻击向量尽可能小,即不要只删除东西等并验证输入是否有意义。
推荐阅读
- typescript - 如果选中一个复选框,请选中并禁用其他复选框 Angular
- r - 如何使用 R 创建光线着色器时间序列动画?
- python - 无法在 python 的 VideoCapture 中播放视频
- c++ - 如何从命令行链接 C++ 库
- python - 在 Python 3.8.2 中,如何将包含 '\uxxxx' 序列的字符串转换为 utf-8?
- matlab - 循环通过网格布局需要永远。如何优化代码?
- r - 计算一列中的特定项目,每行包含一个或多个答案
- ansible - Ansible aws_ec2 库存从不匹配主机组
- sql-server - 通过跳过 SQL Server 中的多条记录批量插入导入数据
- vb.net - 循环通过ms访问表数据到richtextbox vb.net时格式不正确