代码注入
对于代码注入(Code ingection)OWASP将其定义为在客户端提交的代码在服务器端接收后当做动态代码或嵌入文件处理,而Wikipedia将其定义为客户端所提交的数据未经过检查就让web服务器去执行,这个范围比OWASP定义的代码注入的范围要广。
代码注入比较特殊的一点就是代码注入与命令注入往往是由一些不安全的函数或者方法引起的,其中的典型代表就是eval()、system()、include()等。
OS命令执行
<?php
$command=$_REQUEST("command");
system($command);
?>
动态函数调用
<?php
function A(){
echo“A”;
}
function B(){
echo “B”;
}
$func=$_REQUEST("fun");
$func();
?>
代码执行
<?php
$myvar="varname";
$x=$_GET['arg'];
eval("\$myvar=\$x;");
?>
文件包含
<?php
$page=$_REQUSET["page"];
include[$page];
?>
以上的实例都是采用PHP代码进行的演示,但是对于JSP、ASP等而言其动态“include”函数同样会存在代码执行漏洞。甚至是JAVA,C语言、C++等其内部都会由于函数、动态调用等等引起注入漏洞的存在,在编程时需要特别注意,特别留心!
安全建议:要对用户的输入进行严格的过滤操作,避免引起的各种问题!只要有输入的地方就会有漏洞存在的可能!