【问题标题】:Security Impact of using strncmp()?使用 strncmp() 的安全影响?
【发布时间】:2020-06-02 18:41:32
【问题描述】:

我一直在对 strncmp 的安全性进行一些研究,我知道它不是空终止的。但我也看到有人说它“不是 strcmp() 的安全替代品”。谁能给我解释一下?我一直在寻找一段时间,但实际上我能找到的唯一一个地方说这是关于几个问题的。也许有人可以链接我一些资源来调查这个? 谢谢。

【问题讨论】:

  • 欢迎来到 Stack Overflow!你在想strncpy吗? strncmp 确实可以正确处理以 null 结尾的字符串。更笼统地说,您能否详细说明您有哪些具体问题,也许可以提供一些链接或示例?
  • 谢谢!我主要关注strncmp,因为它与我正在做的事情有关,我主要看这两个帖子stackoverflow.com/questions/24353504/whats-wrong-with-strcmpstackoverflow.com/questions/30190460/…也许我的功能与strncpy混淆了,谢谢你抓住它。我想知道人们说它不是 strcmp 的安全替代品时的意思。即>据我了解, strncmp 不存在“安全”,而是“我想比较这些字符串的前 N ​​个字符”。 – 乔纳森莱因哈特 6 月 22 日
  • 抱歉不得不编辑我的评论

标签: c security secure-coding strncmp


【解决方案1】:

我认为这个帖子可能会对你有所帮助 - Is there any safe strcmp?

简而言之,即使您可以发送要比较的字符串的大小,如果字符串比大小 'n' 短并且它不是以 null 结尾的,strncmp 仍然会读取垃圾值。

与您的问题类似 - Why should you use strncpy instead of strcpy?

【讨论】:

  • 谢谢,我去看看
猜你喜欢
  • 2010-10-16
  • 1970-01-01
  • 2014-10-16
  • 1970-01-01
  • 2011-08-06
  • 2010-12-29
  • 2015-05-28
  • 2017-07-06
  • 2013-02-03
相关资源
最近更新 更多