您好,匿名用户
随意问技术百科期待您的加入

入门 C

0 投票

有两个c语言写的简单程序(不是我写的),我刚入门,但是在研究程序是不是可能受到安全威胁,请问这两个程序在做什么,还有是不是可能受到安全威胁啊?
谢谢

int main(int argc,char *argv[],char **envp)
{
	char buf[80];
	buf[0]='\0';
	strcpy(buf,argc[1]);
	printf("\n The output of your command is \n");
	system(buf);
	exit(0);
}

-----------------------------------

#include <stdio.h>
#include <string.h>
void f(char *str)
{
	char buffer[20];
	strcpy(buffer,str);
	/*search_by_name returns true if the name you enter matches the one in database*/
	if(search_by_name(buffer))
		print("%s is registered\n");
}
main()
{
	char name[20];
	printf("Please enter your name \n");
	gets(name);
	f(name);
	
}
用户头像 提问 2012年 12月1日 @ Apollo 上等兵 (269 威望)
分享到:

1个回答

0 投票

问题很明显,主要是两种

1. 不检查缓冲区大小,strcpy和gets函数都是这样
2. 使用system函数,可以执行任意命令,也有风险

用户头像 回复 2012年 12月1日 @ Sejuani 上等兵 (427 威望)
提一个问题:

相关问题

0 投票
1 回复 53 阅读
0 投票
1 回复 39 阅读
0 投票
1 回复 28 阅读
用户头像 提问 2012年 12月1日 @ Dionysus 上等兵 (229 威望)
0 投票
1 回复 27 阅读
0 投票
1 回复 35 阅读
用户头像 提问 2012年 12月1日 @ Zilean 上等兵 (230 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...