当前位置: 网学 > 编程文档 > PHP > 正文

PHP代码审核的详细介绍

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/06/18
用一个反斜线自动转义。
3) magic_quotes_sybase=on/off,如果改选项被禁用,那么 PHP 就会用一个单引号转义所有的单引号。
验证数字型的变量
$id=(int)$id;
注:PHP6 已经删除 magic quotes 选项

b)使用预处理执行 SQL 语句,对所有传入 SQL 语句中的变量,做绑定。这样,用户拼接进来的变量,无论内容是什么,都会被当做替代符号“?”所替代的值,数据库也不会
把恶意用户拼接进来的数据,当做部分 SQL 语句去解析。示例:
复制代码 代码如下:
$stmt = mysqli_stmt_init($link);
if (mysqli_stmt_prepare($stmt, ''SELECT District FROM City WHERE Name=?''))
{
/* bind parameters for markers */
mysqli_stmt_bind_param($stmt, "s", $city);
/* execute query */
mysqli_stmt_execute($stmt);
/* bind result variables */
mysqli_stmt_bind_result($stmt, $district);
/* fetch value */
mysqli_stmt_fetch($stmt);
mysqli_stmt_close($stmt);
}
/* close connection */
mysqli_close($link);

文件上传威胁(File Upload)
安全威胁
PHP 文件上传漏洞主要在于验证文件类型的时候没处理好文件变量所带来的攻击,导致程序判断逻辑被绕过,攻击者上传脚本文件被服务器解析,从而获取 SHELL 或者上传时
文件被任意拷贝,甚至上传脚本木马到 web 服务器上,直接控制 web 服务器。
代码示例
处理用户上传文件请求的代码,这段代码没有过滤文件扩展名。
复制代码 代码如下:
<?
// oldUpload.php
if(isset($upload) && $myfile != "none“ && check($myfile_name)) {
copy($myfile, "/var/www/upload/".$myfile_name);
echo "文件".$file_name."上传成功!点击<a href=\"$PHP_SELF\">继续上传</a>";
exit;
}
//checkUpload.php
$DeniedExtensions=array(''html'',''htm'',''php'',''php2'',''php3'',''php4'',''php5'',''ph
tml'',''pwml'',''inc'',''asp'',''aspx'',''ascx'',''jsp'',''cfm'',''cfc'',''pl'',''bat'',''exe'',''
com'',''dll'',''vbs'',''js'',''reg'',''cgi'',''htaccess'',''asis'') ;
if($checkUpload( PHP代码审核的详细介绍_网学

浏览:
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号
FILE[‘myfile''][name], $DeniedExtensions)){copy( PHP代码审核的详细介绍_网学
浏览:
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号
FILE[‘myfile''][tmp_name],''upload/''. PHP代码审核的详细介绍_网学
浏览:
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号
FILE[‘myfile''][name]);
}
?>
<title>文件上传</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#FFFFFF">
<form enctype="multipart/form-data" method="post">
上传文件:
<input type="file" name=“myfile" size="30">
<input type="submit" name="upload" value="上传">
</form>
</body>
</html>

解决方案
处理用户上传文件,要做以下检查:
(1) 检测文件后缀名是否符合白名单规范。
(2) 将文件按照随机文件名的形式,保存在服务器上。
(3) 上传目录脚本文件不可执行
(4) 注意%00 截断
(5) 对于 jpg 文件,需要读取文件内容,然后生成一个新的 jpg 文件进行保存
Cross-Site Request Forgery (CSRF)

安全威胁
Cross-Site Request Forgery(CSRF),伪造跨站请求。攻击者在用户浏览网页时,利用页面元素(例如 img 的 src),强迫受害者的浏览器向Web 应用程序发送一个改变用户信息的请求。由于发生 CSRF 攻击后,攻击者是强迫用户向服务器发送请求,所以会造成用户信息被迫修改,更严重者引发蠕虫攻击。
CSRF 攻击可以从站外和站内发起。从站内发起 CSRF 攻击,需要利用网站本身的业务,比如“自定义头像”功能,恶意用户指定自己的头像 URL 是一个修改用户信息的链接,当其他已登录

  • 下一篇资讯: 深入PHP FTP类的详解
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号