男人和女人做污的视频网站,2008建立的php网站慢,张家港手机网站,网站建设的编程技术1、 Magic Quotes选项 PHP.INI中中有三个以magic_quotes_开头的选项 magic_quotes_gpc如果是On的话#xff0c;就会自动用‘\’转义从GET,POST,COOKIE来的数据#xff0c;这是为什么我们想在URL中输入 ; show tables;--有时候失败的原因#xff0c;因为被转义了呗…1、 Magic Quotes选项 PHP.INI中中有三个以magic_quotes_开头的选项 magic_quotes_gpc如果是On的话就会自动用‘\’转义从GET,POST,COOKIE来的数据这是为什么我们想在URL中输入 ; show tables;--有时候失败的原因因为被转义了呗 magic_quotes_runtime如果是on会自动转义来自数据库或字符串中数据magic_quotes_sybase会用单引号代替反斜杠来转义 我们可以使用addslashes函数来达到同样目的不过有时候得用stripslashes来取消转义哦 2、 PHP的命令执行函数 a) system:执行一个外部的应用程序并显示输出的结果 b) exec:执行一个外部的应用程序 c) passthru:执行一个UNIX系统命令并返回原始的输出 d) shell_exec:执行shell命令并返回输出的字符串 e) 运算符与shell_exec功能相同 system举例-列出C盘内容 ?phpecho pre;$last_line system(dir c:, $retval);echo /pre;echo 命令输出的最后一行 . $last_line . br /;echo 命令的返回值 . $retval;? exec执行外部应用程序-列出C盘内容 ?php$output array();echo pre;$last_line exec(dir c:, $output);echo /pre;while(list($key, $value) each($output)){echo $value . br /;}echo 命令输出的最后一行 . $last_line . br /;
echo 命令的返回值 . $retval;? string shell_exec( string cmd ) ?phpecho pre;$output shell_exec(dir c:);echo /pre;echo nl2br($output) . br /;? ?phpecho pre;$output dir c:;echo /pre;echo nl2br($output) . br /;? 3、 EVAL函数攻击 下面的例子我换参数为system(dir c:);,执行失败了是因为我的php.ini中 ; Magic quotes for incoming GET/POST/Cookie data. magic_quotes_gpc On 这句话导致system括号里的双引号被转义导致执行失败 ?php$myvar varname;if (isset($_GET[arg])){$arg $_GET[arg];//arg参数可以替换成system造成命令注入攻击eval(\$myvar $arg;);//eval 能够执行里面的字符串的PHP代码echo \$myvar . $myvar;}? 4、 防范命令注入攻击和EVAL注入攻击的方法 使用函数 escateshellarg 函数过滤传来的字符串参数即可 5、 客户端脚本攻击-SQL Insertion 客户端脚本攻击就是用户在留言板框内输入js脚本然后别人就中招了 解决方法就是HTML输出过滤 在PHP中有两种方法可以进行HTML输出过滤 l 使用strip_tags来删除字符串中的PHP和HTML标签 l 使用 htmlspecialchars函数来讲特殊字符转换成HTML编码而不是执行这是解决该问题的最佳方法 l 跨网站脚本攻击XSS解决方法 很简单仍然使用htmlspecialchars将来自URL的参数过滤一下即可这样不让来自URL的js代码执行就OK 如果在表单中用的是action$_SERVER[PHP_SELF]或者action$SCRIPT_NAME的时候会被XSS注入解决方法 在action后面的URL加上htmlspecialchars过滤 action写成空即action默认是提交到自身页面的所以没必要该情况用于表单是自身处理的情况 6、 SQL注入攻击的防御方法 a) 如果确定是整数用intval过滤参数 b) 如果确定是浮点数用floatval或doubleval函数过滤 c) 如果是字符串则用addslashes函数将单引号双引号反斜杠NULL等字符转义 请注意PHP.INI中的magic_quotes_gpc如果为ON那么字符串中引号等会被自动加上反斜杠转义那么如果我们再加上addslashes函数就会有了两个反斜杠使得SQL语句中出现了一个反斜杠后被执行会出错误的。 解决方法使用get_magic_quotes_gpc判断是不是将该值设置为ON了如果是ON返回1如果offf返回0转载于:https://www.cnblogs.com/crazyant/archive/2011/02/23/2823910.html