SQL注入:

在正常情况下:

删除phpid = 3;
为SQL = 'delete从消息id是美元_get { 'id' };

Malware:

删除。phpid = 3或1;
为SQL = 'delete从消息id是3或1;----后执行,所有的记录将被删除

应该采取相应的措施,比如判断它是否是以前的号码等等。

说服自己,来自客户的信息总是不可靠的!

转移:

有时客户端发送的数据,可能包含恶意的一些特殊字符,例如单引号、斜杠,所以需要逃避,逃避为普通字符,此时它的字符串(String str addslashes),这个函数可以逃到一个变量。然而,如果数组中的元素是逃脱,我们使用foreach循环数组,如下:

复制代码代码如下所示:
foreach(_post美元美元美元K = > v){
如果(is_string($ V)){
_post美元{ $ K } = addslashes($ V);
}
}


但是如果数组包含在数组中,则它是递归使用的,此时使用它。

array_walk_recursive(数组输入,回调为funcname {,混合$userdata })

用户自定义函数funcname是应用在阵列的每个单元,该函数将递归进入更深的阵列。在一个典型的案例,funcname接受两个参数,输入参数的值为第一名,作为第二。如果提供了一个可选的参数,用户数据,它将被传递给回调funcname作为第三个参数,返回到真正的成功时,或当失败返回假

也就是说,至少有两个参数接收用户定义的函数,而addslashes()只能接受一个参数,所以一个自定义函数的定义如下:

复制代码代码如下所示:
函数A($,k){
$ V = addslashes($ V);
}
array_walk_recursive($ ARR,'a');


自动转帐系统:

在PHP中,有一个魔术引号的概念,如何打开答:在PHP.ini,magic_quotes_gpc =上;重启Apache

魔术引号是开放的,系统会自动对_get美元美元美元,_post,_cookie数据逃,不知不觉,再次手动逃避它,把更多的,一个合理的逃避,我们必须先确定符号,魔法已经打开,与magic_quotes_gpc(法官)不需要传递的价值,关回到0,接近1的回报

复制代码代码如下所示:
如果(get_magic_quotes_gpc)(!){如果魔术引号没有打开

功能_addslashes($ V,$K){
$ V = addslashes($ V);
}
array_walk_recursive(_get美元,'_addslashes);
array_walk_recursive(_post美元,'_addslashes);
array_walk_recursive(_cookie美元,'_addslashes);
}