| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6754 人关注过本帖, 1 人收藏
标题:(5)C语言问题之人员管理系统
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
嘿嘿,你自己把程序用起来自然逐渐发现问题,都说了是难有印象的。真正地去用,用心,三两下测试是不行的,实践才能炼真金。

授人以渔,不授人以鱼。
2015-12-12 22:59
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
如果程序一开始就自动导入,然后有人在外面修改了文件,再导出。。。。。呵.呵
太多的可能性了。

我们都在路上。。。。。
2015-12-12 23:06
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
不考虑外部改动和共享问题,纯程序操作也有问题。比如第一个问题,你在输入名字的时候带空格就是那个结果,不是我在外面改文件才那样,那是用scanf("%s")的固有缺陷,所以一开始就攻击它的。

改为追加,破绽在无法控制用户按导出导入的时机和次数,你一定会遇到多次重复追加的问题,以及内存数据与文件不一致的问题。归根结底,这是你提供这么个菜单选项引入的麻烦。文件读写应是自动的,不让用户自己来!

[此贴子已经被作者于2015-12-12 23:19编辑过]


授人以渔,不授人以鱼。
2015-12-12 23:15
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
学校一般不会去讲这些函数过多的用法,其实用法很多。

我们都在路上。。。。。
2015-12-12 23:20
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
以下是引用TonyDeng在2015-12-12 23:15:13的发言:

不考虑外部改动和共享问题,纯程序操作也有问题。比如第一个问题,你在输入名字的时候带空格就是那个结果,不是我在外面改文件才那样,那是用scanf("%s")的固有缺陷,所以一开始就攻击它的。

改为追加,破绽在无法控制用户按导出导入的时机和次数,你一定会遇到多次重复追加的问题,以及内存数据与文件不一致的问题。归根结底,这是你提供这么个菜单选项引入的麻烦。文件读写应是自动的,不让用户自己来!


估计他又会想,来个狠的,读入后,把文件删除了,退出程序前写文件。

我们都在路上。。。。。
2015-12-12 23:21
武伟
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:506
专家分:2638
注 册:2015-7-23
收藏
得分:0 
实在是没想到一个文件学问这么大……先弱弱地问下:“追加”是什么意思?看你们说了好多遍
“文件读写应是自动的,不让用户自己来!”感觉好高大上;
还有:“读入后,把文件删除了”,感觉同上句,是自动删除吗?

[此贴子已经被作者于2015-12-12 23:31编辑过]

2015-12-12 23:29
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
不要以为姓名包含空格很难想象,弄个英文名就有了,何况长度也不够。太多的人写程序用这个函数来接收姓名,一看就知道不实践的。对字符串不考虑空格,是非常严重的漏洞,可是又看见太多的人根本没有意识的。

授人以渔,不授人以鱼。
2015-12-12 23:34
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
append,你以为fopen()的a是什么单词?

[此贴子已经被作者于2015-12-12 23:36编辑过]


授人以渔,不授人以鱼。
2015-12-12 23:34
武伟
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:506
专家分:2638
注 册:2015-7-23
收藏
得分:0 
以下是引用TonyDeng在2015-12-12 23:34:08的发言:

append,你以为fopen()的a是什么单词?

好吧,“保留原文件所有内容,向其文件尾部添加数据”——应该就是“追加”
2015-12-12 23:40
武伟
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:506
专家分:2638
注 册:2015-7-23
收藏
得分:0 
以下是引用TonyDeng在2015-12-12 23:34:08的发言:

不要以为姓名包含空格很难想象,弄个英文名就有了,何况长度也不够。太多的人写程序用这个函数来接收姓名,一看就知道不实践的。对字符串不考虑空格,是非常严重的漏洞,可是又看见太多的人根本没有意识的。

感觉用gets()的话好像在导入文件的时候也会出问题,我试试看
2015-12-12 23:41
快速回复:(5)C语言问题之人员管理系统
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012833 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved