二开教程 Development

提供PHPCMS常用模块的二次开发,改造,升级都修改过程代码

PHPCMS V9 /phpcms/modules/member/index.php phpcms注入漏洞修复补丁

 admin  2023-06-20 21:45:33
漏洞名称:phpcms注入漏洞

文件路径:/phpcms/modules/member/index.php

修复方法来源于网络,由PHPCMS整理提供。

源代码大概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);
本文《PHPCMS V9 /phpcms/modules/member/index.php phpcms注入漏洞修复补丁》发布于PHPCMS管理系统文章,作者:admin,如若转载,请注明出处:https://www.phpcms.vip/help/doc/69.html,否则禁止转载,谢谢配合!