《CMS系统:PHPCMS V9 /phpcms/modules/member/index.php phpcms注入漏洞修复补丁》要点:
本文介绍了CMS系统:PHPCMS V9 /phpcms/modules/member/index.php phpcms注入漏洞修复补丁,希望对您有用。如果有疑问,可以联系我们。
相关主题:PHPCMS教程
漏洞名称:phpcms注入漏洞
文件路径:/phpcms/modules/member/index.php
修复方法来源于网络,由风信网整理提供.
源代码大概615行:
if(empty($_SESSION['connectid'])) {
//判断验证码
$code = isset($_POST['code']) && trim($_POST['code']) ? trim($_POST['code']) : showmessage(L('input_code'), HTTP_REFERER);
if ($_SESSION['code'] != strtolower($code)) {
$_SESSION['code'] = '';
showmessage(L('code_error'), HTTP_REFERER);
}
$_SESSION['code'] = '';
}
$username = isset($_POST['username']) && is_username($_POST['username']) ? trim($_POST['username']) : showmessage(L('username_empty'), HTTP_REFERER);
$password = isset($_POST['password']) && trim($_POST['password']) ? trim($_POST['password']) : showmessage(L('password_empty'), HTTP_REFERER);
针对phpsso模块添加过滤代码,最好的方式应该是将转义和过滤放在数据库操作的前一步,这样可以极有效缓解SQL注入带来的问题
修改代码:
$password = isset($_POST['password']) && trim($_POST['password']) ? trim($_POST['password']) : showmessage(L('password_empty'), HTTP_REFERER);
改为:
$password = isset($_POST[‘password‘]) && trim($_POST[‘password‘]) ? addslashes(urldecode(trim($_POST[‘password‘]))) : showmessage(L(‘password_empty‘), HTTP_REFERER);
转载请注明本页网址:
http://www.vephp.com/jiaocheng/5610.html