C# 安全风险

标签 c# security

我正在开发一个小型 C# 应用程序,它充当特定网络协议(protocol) (myprotocol://blafoobar) 的处理程序。因此,只要用户单击此类 Web 链接,Windows 就会调用处理程序。然后它解析 URI 并执行某些操作。

这当然可能是一个安全风险。一种可能的攻击向量是,攻击者向用户提供恶意链接:“myprotocol://someevilstuff”。然后,由于缓冲区溢出等原因,URI 的解析会导致我的应用程序暴露一些意外行为。(<- 我不是这方面的专家)。

所以我有一堆问题:

  • C# 是否通常对缓冲区溢出等更健壮(因为例如数组边界总是被检查)?
  • C# 字符串类是否相当安全(拆分等)?
  • 是否有一些我应该注意/避免的一般性建议?

最佳答案

Is C# in general more robust against buffer overflows

它是,作为良好的 C# 代码编写 - 基本上,您必须始终检查分配的内存。也就是说,除非您的应用程序明确违反信任边界(不安全代码、调用 native 库),否则您是非常安全的。 100% 不太可能,但很多人都致力于修复那里的每个错误。

Is the C# string class rather safe (splitting etc.)?

是的。

Is there some general advice what I should look out for/avoid?

不是真正的技术层面。在逻辑层面上 - 使可能的攻击向量尽可能小,即不要只是删除内容等并验证输入是否有意义。

关于C# 安全风险,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60520977/

相关文章:

c# - 用户控件调整大小

c# - 有向无环图中的最短路径

c# - 如何在一个方法调用中创建文件及其父目录?

c# - 关于将 POCO 从一层转换为另一层 POCO 的设计问题

PHP 安全登录 - 客户端选项?

c# - ComboBox 在键入时更改文本颜色的事件

php - 使用 cookie 恢复 session 是正确的方法吗?

c# - 如何保护连接字符串

ruby-on-rails - 如何限制 Net::HTTP 请求的大小?

c# - 无法验证在 C# 中创建的签名