【问题标题】:Is "unsafe.Pointer(&x)" unsafe to call?“unsafe.Pointer(&x)”调用不安全吗?
【发布时间】:2020-04-18 12:58:12
【问题描述】:

我正在使用 Go 进行一个项目。我使用了“unsafe.Pointer(&x)”,并且在使用一些错误检查器和漏洞检查器程序进行检查时,我收到了这个警告,我应该避免使用它。所以我想知道它是否真的是一个漏洞,或者它如何影响我的应用程序。还有为什么这个包名不安全?

【问题讨论】:

  • 它本身并不会以某种方式使您的程序“不安全”,但这意味着它打开了类型安全的旁路,因此编译器不再保证您的代码即使不会崩溃当你搞砸时,现在由你来确保你正确地使用它。
  • unsafe 包被命名为 unsafe,因为它使您的代码更加安全。或者可能不是?包 unsafe 允许执行不安全的操作,您应该永远使用它。特别是如果这种语言对您来说是新的。如果你想玩不安全:使用C或直接去asm。

标签: security go unsafe-pointers


【解决方案1】:

不安全库文档的第一行。 unsafe

包不安全包含绕过类型安全的操作 围棋程序。

在 Go 中,类型安全确保值类型和变量类型匹配。 unsafe library 允许您解决这个问题。这开启了将不需要的值写入此特定位置的可能性。除非真的很需要,否则请避免。

【讨论】:

    猜你喜欢
    • 2018-04-11
    • 2017-10-04
    • 1970-01-01
    • 1970-01-01
    • 2022-12-18
    • 2017-07-08
    • 1970-01-01
    • 2012-03-31
    • 2012-12-13
    相关资源
    最近更新 更多