首页 > 其他 > 详细

command injection(命令注入)

时间:2015-09-23 19:19:00      阅读:237      评论:0      收藏:0      [点我收藏+]

  命令注入是十分致命的安全漏洞,在编码过程中需要予以重视。防止命令注入有一种方便快捷的方法,就是加转义字符过滤用户敏感输入。

示例代码:

 1 char* CGlobe::RejectCommandInjection(char *strCmd)
 2 {
 3     // 通过加转义字符防止命令注入
 4 
 5     memset(m_strBuf,0,sizeof(m_strBuf));
 6 
 7     int len = strlen(strCmd);
 8     //防止字符串长度溢出
 9     if(len > MAX_LEN/2)
10         len = MAX_LEN/2 - 2;
11     int x,y;
12     for(x=0,y=1;x<len;x++)
13     {
14         switch(strCmd[x])
15         {
16         case ;:
17         case |:
18         case >:
19         case <:
20         case [:
21         case ]:
22         case &:
23         case #:
24         case {:
25         case }:
26         case ^:
27         case (:
28         case ):
29         case $:
30             m_strBuf[y++] = \\;
31             m_strBuf[y++] = strCmd[x];
32             break;
33 
34         default:
35              m_strBuf[y++] = strCmd[x];
36 
37         }
38 
39     }
40     //字符串首尾加单引号
41     m_strBuf[0] = \‘;
42     m_strBuf[y] = \‘;
43 
44     return m_strBuf;
45 
46 
47 }

  不过这种方法并不能完全杜绝命令注入,具体可参考php escapeshellcmd多字节编码漏洞解析及延伸

command injection(命令注入)

原文:http://www.cnblogs.com/huminiceblog/p/4832820.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!