加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

面向Google编程的CopyPaste措施员要警惕了!

发布时间:2019-10-11 06:51:57 所属栏目:建站 来源:刘欣
导读:张大胖最近接了一个C++的私活,在编程的时辰必要天生一个字母和数字殽杂的随机字符串,张大胖不知道该怎么办,于是打开Google,输入要害字搜刮,敏捷在Stack Overflow找到了谜底,还附有相干代码,他心中窃喜,直接复制粘贴过来,稍加修改,题目搞定,爽!

张大胖最近接了一个C++的私活,在编程的时辰必要天生一个字母和数字殽杂的随机字符串,张大胖不知道该怎么办,于是打开Google,输入要害字搜刮,敏捷在Stack Overflow找到了谜底,还附有相干代码,他心中窃喜,直接复制粘贴过来,稍加修改,题目搞定,爽!

面向Google编程的CopyPaste措施员要警惕了!

这也许是许多措施员都干过的工作,可是一个研究表现这么做是有风险的。

1

最近一个计较机科学研究小组研究了Stack Overflow上已往十年的72483个C++代码片断,发明白69个有安详缺陷的代码片断,凭证CWE (Common Weakness Enumeration) 的类型,被分成29类。

从数目上来看,69个很是少,总数目的千分之一都不到,可是让人震惊的是这69个有安详缺陷的代码片断又呈此刻了2859个GitHub的开源项目中!

很明明,这些代码都是措施员从Stack Overflow 复制粘贴已往的。

拿文章开头张大胖的例子来讲, 他必要用C++天生一个字母数字殽杂的随机字符串,可是不知道怎么办,于是就到Stack Overflow上去搜刮,他找到了一个ID为440240的谜底,这个谜底有265个拥护,被赏识了17万多次,应该是个好谜底了吧!

面向Google编程的CopyPaste措施员要警惕了!

于是,张大胖“动心”了,他以为这是一段能办理题目的好代码,Copy , Paste 吧!

然而这段代码是存在着大坑的。

起首是字符串长度的题目,C/C++字符串以0末了,带有'len'参数的函数应该把这一点思量进来,可是这段代码只是简朴的配置 s[len]=0 ,这就会导致不行预料的举动。

其次rand()函数已经是一个过期的函数了,不该该被挪用了,纵然是被行使,也应该先挪用srand()配置一个随机数种子。

第三,行使rand() % N 试图来发生一个随机数字也不是最佳实践,由于许多随机数天生器天生数字的低字节并不是真正随机的。

看起来很简朴的代码却有许多安详的裂痕,假如贸然复制粘贴到本身的项目中,就是埋了一个地雷。

2

着实,假如张大胖轻微仔细一点,他就会看到这个谜底有这么几个评述:

面向Google编程的CopyPaste措施员要警惕了!

现实上已经有人指出代码的错误了,Velkan还明晰地说,Stack Overflow应该提供一种机制,让这些过期的、废弃的谜底“沉”下去,不能在这里误导各人了。

可是有几多Copy&Paste措施员会仔细地看这些评述呢?

这个研究小组的科学家们很是知心,专门开拓了一个Chrome插件,当措施员去查察这些有安详缺陷的代码时,插件就会提醒:这段代码有安详裂痕! 试图阻止复制粘贴,而且提供一个更好的办理方案的链接。

面向Google编程的CopyPaste措施员要警惕了!

3

研究小组的科学家们就这些安详裂痕接洽了GitHub项目标开拓职员, 从回覆来看,只有13.3%的人说他们已经Fix了,有40%的人认可这些裂痕的也许性,可是他们以为输入数据不是动态的,没有安详风险。尚有13.3%的人基础不肯意修改。可见安详题目任重而道远啊!

面向Google编程的CopyPaste措施员要警惕了!

但愿能给Copy & Paste措施员敲响一次警钟吧!

参考资料:

https://arxiv.org/pdf/1910.01321.pdf?

https://stackoverflow.com/questions/440133/how-do-i-create-a-random-alpha-numeric-string-in-c/440240#440240

http://c-faq.com/lib/randrange.html

面向Google编程的CopyPaste措施员要警惕了!

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读