资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

C++高风险函数有哪些

本篇内容主要讲解“C++高风险函数有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++高风险函数有哪些”吧!

公司主营业务:网站设计、网站制作、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出昌江黎族免费做网站回馈大家。

1.gets - 高风险    

危险:

它没有安全检查措施,很容易导致缓冲区溢出.

建议:

可以考虑使用char*fgets(char *dest ,int n, stdin);

前提是,我们必须清楚n必须小于dest的大小,以保证函数执行后dest以0结尾.否则还是将会导致不可预料的结果.

例子:

......

char dest[MAX_SIZE];

memset(dest,0,MAX_SIZE);

fgets(dest,MAX_SIZE-1,stdin);

......

2._getws - 高风险

危险:

它没有安全检查措施,很容易导致缓冲区溢出.

建议:

可以考虑使用wchar_t*fgetws(wchar_t *dest ,int n, stdin);

前提是,我们必须清楚n必须小于dest的大小,以保证函数执行后dest以0结尾.否则还是将会导致不可预料的结果.

例子:

......

wchar_tdest[MAX_SIZE];

wmemset(dest,0,MAX_SIZE);

fgetws(dest,MAX_SIZE-1,stdin);

......

3._getts - 高风险  

危险:

它没有安全检查措施,很容易导致缓冲区溢出.

建议:

可以考虑使用TCHAR *fgetts(TCHAR *dest ,int n, stdin);

前提是,我们必须清楚n必须小于dest的大小,以保证函数执行后dest以0结尾.否则还是将会导致不可预料的结果.

例子:

......

TCHAR dest[MAX_SIZE];

memset(dest,0,MAX_SIZE*sizeof(TCHAR));

fgetts(dest,MAX_SIZE-1,stdin);

......

4.strcpy - 高风险 

危险:

它没有安全检查措施,很容易导致缓冲区溢出.

建议:

可以考虑使用char*strncpy(char *dest, const char *src, size_t n);

前提是,我们必须清楚目标缓存区dest的大小和源缓存区src的长度,dest首先以0赋值,以保证0结尾.否则还是将会导致不可预料的结果.

例子:

......

char dest[MAX_SIZE];

......

memset(dest,0,MAX_SIZE);

strncpy(dest,src,MAX_SIZE-1);

......

5.lstrcpy - 高风险

危险:

它没有安全检查措施,很容易导致缓冲区溢出.

建议:

可以考虑使用LPTSTRlstrcpyn(LPTSTR dest, LPCTSTR src, int n);

前提是,我们必须清楚目标缓存区dest的大小和源缓存区src的长度.另外请注意函数lstrcpyn会自动在第n-1位填充0,无论第n-1位是否还有有效数据.

例子:

......

char dest[MAX_SIZE];

......

lstrcpyn(dest,src,MAX_SIZE);

......

6.lstrcpyA - 高风险     

危险:

它没有安全检查措施,很容易导致缓冲区溢出.

建议:

可以考虑使用LPTSTRlstrcpyn(LPTSTR dest, LPCTSTR src, int n);

前提是,我们必须清楚目标缓存区dest的大小和源缓存区src的长度.另外请注意函数lstrcpyn会自动在第n-1位填充0,无论第n-1位是否还有有效数据.

例子:

......

char dest[MAX_SIZE];

......

lstrcpyn(dest,src,MAX_SIZE);

......

7.lstrcpyW - 高风险    

危险:

它没有安全检查措施,很容易导致缓冲区溢出.

建议:

可以考虑使用wchar_t*wcsncpy(wchar_t *dest, const wchar_t *src,size_t n);

前提是,我们必须清楚目标缓存区dest的大小和源缓存区src的长度,dest首先以0赋值,以保证0结尾.否则还是将会导致不可预料的结果.

例子:

......

wchar_tdest[MAX_SIZE];

......

wmemset(dest,0,MAX_SIZE);

wcsncpy(dest,src,MAX_SIZE-1);

......

8.wcscpy - 高风险

危险:

它没有安全检查措施,很容易导致缓冲区溢出.

建议:

可以考虑使用wchar_t*wcsncpy(wchar_t *dest, const wchar_t *src,size_t n);

前提是,我们必须清楚目标缓存区dest的大小和源缓存区src的长度,dest首先以0赋值,以保证0结尾.否则还是将会导致不可预料的结果.

例子:

......

wchar_tdest[MAX_SIZE];

......

wmemset(dest,0,MAX_SIZE);

wcsncpy(dest,src,MAX_SIZE-1);

......

9._tcscpy - 高风险      

危险:

它没有安全检查措施,很容易导致缓冲区溢出.

建议:

可以考虑使用TCHAR*tcsncpy(TCHAR *dest, const TCHAR *src, size_tn);

前提是,我们必须清楚目标缓存区dest的大小和源缓存区src的长度,dest首先以0赋值,以保证0结尾.否则还是将会导致不可预料的结果.

例子:

......

TCHAR dest[MAX_SIZE];

......

memset(dest,0,MAX_SIZE*sizeof(TCHAR));

tcsncpy(dest,src,MAX_SIZE-1);

......

10._ftcscpy - 高风险   

危险:

它没有安全检查措施,很容易导致缓冲区溢出.

建议:

可以考虑使用char*_ftcsncpy(char* dest,const char* src, unsignedint n);

前提是,我们必须清楚目标缓存区dest的大小和源缓存区src的长度,dest首先以0赋值,以保证0结尾.否则还是将会导致不可预料的结果.

例子:

......

char dest[MAX_SIZE];

......

memset(dest,0,MAX_SIZE);

_ftcsncpy(dest,src,MAX_SIZE-1k);

......

11.StrCpy - 高风险     

危险:

它没有安全检查措施,很容易导致缓冲区溢出.

建议:

可以考虑使用char*strncpy(char *dest, const char *src, size_t n);

前提是,我们必须清楚目标缓存区dest的大小和源缓存区src的长度,dest首先以0赋值,以保证0结尾.否则还是将会导致不可预料的结果.

例子:

......

char dest[MAX_SIZE];

......

memset(dest,0,MAX_SIZE);

strncpy(dest,src,MAX_SIZE-1);

......

12.strcat - 高风险 

危险:

它没有安全检查措施,很容易导致缓冲区溢出.

建议:

可以考虑使用char*strncat(char *dest , const char *src,size_t n);

前提是,我们必须清楚目标缓存区dest所剩下的大小和源缓存区src的长度,同时保证函数执行后dest以0结尾.否则还是将会导致不可预料的结果.

例子:

......

char dest[MAX_SIZE];

memset(dest,0,MAX_SIZE);

......

strncat(dest,src,MAX_SIZE-strlen(dest)-1);

......

13.wcscat - 高风险      

危险:

它没有安全检查措施,很容易导致缓冲区溢出.

建议:

可以考虑使用wchar_t*wcsncat(wchar_t *dest, const wchar_t *src,size_t n);

前提是,我们必须清楚目标缓存区dest所剩下的大小和源缓存区src的长度,同时保证函数执行后dest以0结尾.否则还是将会导致不可预料的结果.

例子:

......

wchar_tdest[MAX_SIZE];

wmemset(dest,0,MAX_SIZE);

......

wcsncat(dest,src,MAX_SIZE-wcslen(dest)-1);

......

14._mbscat - 高风险    

危险:

它没有安全检查措施,很容易导致缓冲区溢出.

建议:

可以考虑使用unsigned char* _mbsncat(unsigned char*dest,constunsigned char* src, size_t n);

前提是,我们必须清楚目标缓存区dest的大小和源缓存区src的长度,dest首先以0赋值,以保证0结尾.否则还是将会导致不可预料的结果.

例子:

......

unsigned char dest[MAX_SIZE];

memset(dest,0,MAX_SIZE);

......

_mbsncat(dest,src,MAX_SIZE-strlen(dest)-1);

......

15._tcscat - 高风险      

危险:

它没有安全检查措施,很容易导致缓冲区溢出.

建议:

可以考虑使用char*_tcsncat(char *dest , const char *src,size_t n);

前提是,我们必须清楚目标缓存区dest所剩下的大小和源缓存区src的长度,同时保证函数执行后dest以0结尾.否则还是将会导致不可预料的结果.

例子:

......

char dest[MAX_SIZE];

memset(dest,0,MAX_SIZE);

......

_tcsncat(dest,src,MAX_SIZE-strlen(dest)-1);

......

16.StrCat - 高风险      

危险:

它没有安全检查措施,很容易导致缓冲区溢出.

建议:

可以考虑使用char*strncat(char *dest , const char *src,size_t n);

前提是,我们必须清楚目标缓存区dest所剩下的大小和源缓存区src的长度,同时保证函数执行后dest以0结尾.否则还是将会导致不可预料的结果.

例子:

......

char dest[MAX_SIZE];

memset(dest,0,MAX_SIZE);

......

strncat(dest,src,MAX_SIZE-strlen(dest)-1);

......

17.StrCatA - 高风险    

危险:

它没有安全检查措施,很容易导致缓冲区溢出.

建议:

可以考虑使用char*strncat(char *dest , const char *src,size_t n);

前提是,我们必须清楚目标缓存区dest所剩下的大小和源缓存区src的长度,同时保证函数执行后dest以0结尾.否则还是将会导致不可预料的结果.

例子:

......

char dest[MAX_SIZE];

memset(dest,0,MAX_SIZE);

......

strncat(dest,src,MAX_SIZE-strlen(dest)-1);

......

18.StrCatW - 高风险   

危险:

它没有安全检查措施,很容易导致缓冲区溢出.

建议:

可以考虑使用wchar_t*wcsncat(wchar_t *dest, const wchar_t *src,size_t n);

前提是,我们必须清楚目标缓存区dest所剩下的大小和源缓存区src的长度,同时保证函数执行后dest以0结尾.否则还是将会导致不可预料的结果.

例子:

......

wchar_t dest[MAX_SIZE];

wmemset(dest,0,MAX_SIZE);

......

wcsncat(dest,src,MAX_SIZE-wcslen(dest)-1);

......

19.sprintf - 高风险      

危险:

它没有安全检查措施,很容易导致缓冲区溢出.

建议:

可以考虑使用int _snprintf(char *dest,size_t n, const char*format[,argument...]);

前提是,我们必须清楚写入目标缓存区dest的长度必须小于dest的大小,同时保证函数执行后dest以0结尾.否则还是将会导致不可预料的结果.

例子:

......

char dest[MAX_SIZE];

memset(dest,0,MAX_SIZE);

_snprintf(dest,MAX_SIZE-1,formatstring,args);

......

20.wsprintf - 高风险   

危险:

它没有安全检查措施,很容易导致缓冲区溢出.

建议:

可以考虑使用intwnsprintf(LPTSTR dest ,int n, LPCTSTR pszFmt);

前提是,我们必须清楚写入目标缓存区dest的长度必须小于dest的大小,同时保证函数执行后dest以0结尾.否则还是将会导致不可预料的结果.

例子:

......

char dest[MAX_SIZE];

memset(dest,0,MAX_SIZE);

wnsprintf(dest,MAX_SIZE-1,pszFmt);

......

21.wsprintfA - 高风险 

危险:

它没有安全检查措施,很容易导致缓冲区溢出.

建议:

可以考虑使用intwnsprintf(LPTSTR dest ,int n, LPCTSTR pszFmt);

前提是,我们必须清楚写入目标缓存区dest的长度必须小于dest的大小,同时保证函数执行后dest以0结尾.否则还是将会导致不可预料的结果.

例子:

......

char dest[MAX_SIZE];

memset(dest,0,MAX_SIZE);

wnsprintf(dest,MAX_SIZE-1,pszFmt);

......

22.wsprintfW - 高风险

危险:

它没有安全检查措施,很容易导致缓冲区溢出.

建议:

可以考虑使用intwnsprintf(LPTSTR dest ,int n, LPCTSTR pszFmt);

前提是,我们必须清楚写入目标缓存区dest的长度必须小于dest的大小,同时保证函数执行后dest以0结尾.否则还是将会导致不可预料的结果.

例子:

......

char dest[MAX_SIZE];

memset(dest,0,MAX_SIZE);

wnsprintf(dest,MAX_SIZE-1,pszFmt);

......

23.vsprintf - 高风险    

危险:

它没有安全检查措施,很容易导致缓冲区溢出.

建议:

可以考虑使用int_vsnprintf(char *dest ,size_t n, const char*format, va_list argptr);

前提是,我们必须清楚写入目标缓存区dest的长度必须小于dest的大小,同时保证函数执行后dest以0结尾.否则还是将会导致不可预料的结果.

例子:

......

char dest[MAX_SIZE];

memset(dest,0,MAX_SIZE);

_vsnprintf(dest,MAX_SIZE-1,formatstring,args);

......

24.vswprintf - 高风险  

危险:

它没有安全检查措施,很容易导致缓冲区溢出.

建议:

可以考虑使用int_vsnwprintf(wchar_t *dest ,size_t n, const wchar_t*format, va_list argptr);

前提是,我们必须清楚写入目标缓存区dest的长度必须小于dest的大小,同时保证函数执行后dest以0结尾.否则还是将会导致不可预料的结果.

例子:

......

wchar_tdest[MAX_SIZE];

wmemset(dest,0,MAX_SIZE);

_vsnwprintf(dest,MAX_SIZE-1,formatstring,args);

......

25.swprintf - 高风险   

危险:

它没有安全检查措施,很容易导致缓冲区溢出.

建议:

可以考虑使用int_snwprintf(wchar_t *dest ,size_t n, const wchar_t*format[,argument...]);

前提是,我们必须清楚写入目标缓存区dest的长度必须小于dest的大小,同时保证函数执行后dest以0结尾.否则还是将会导致不可预料的结果.

例子:

......

wchar_tdest[MAX_SIZE];

wmemset(dest,0,MAX_SIZE);

_snwprintf(dest,MAX_SIZE-1,formatstring,args);

......

26._stprintf - 高风险   

危险:

它没有安全检查措施,很容易导致缓冲区溢出.

建议:

可以考虑使用int_sntprintf(TCHAR *dest ,siez_t n,const TCHAR*format[,argument...]);

前提是,我们必须清楚写入目标缓存区dest的长度必须小于dest的大小,同时保证函数执行后dest以0结尾.否则还是将会导致不可预料的结果.

例子:

......

TCHAR dest[MAX_SIZE];

memset(dest,0,MAX_SIZE*sizeof(TCHAR));

_sntprintf(dest,MAX_SIZE-1,pszFmt);

......

到此,相信大家对“C++高风险函数有哪些”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


网页题目:C++高风险函数有哪些
文章出自:http://cdkjz.cn/article/pssjde.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220