程序升级触发阿里云自身安全机制导致的莫名问题

本文涉及的产品
云服务器 ECS,每月免费额度280元 3个月
云服务器ECS,u1 2核4GB 1个月
简介:

 最近对放在阿里云的程序作了升级,但在升级的时候却出现了一个莫名其妙的问题,导致整个应用无法使用。这是一个ecshop的程序,程序升级完以后出现莫名其妙的语法错误。然而程序本地测试并无问题。

  报错异常

Parse error: syntax error, unexpected T_IF in /www/web/includes/lib_main.php on line 1

  用securecrt登陆进去,set number居然报错。没辙,将文件栽下来,查看了下lib_main.php

复制代码
<?php/** * ECSHOP 前台公用函数库 * ============================================================================ * 版权所有 2005-2010 上海商派网络科技有限公司,并保留所有权利。 * 网站地址: http://www.ecshop.com; * ---------------------------------------------------------------------------- * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和 * 使用;不允许对程序代码以任何形式任何目的的再发布。 * ============================================================================ * $Author: liuhui $ * $Id: lib_main.php 17063 2010-03-25 06:35:46Z liuhui $*/if (!defined('IN_ECS')){    die('Hacking attempt');}/** *  * 给用户分配业务员 * @access public * @param int user_id 用户id * @return void *  */function assgin_user($user_id = 0){    if (0 == intval($user_id))    {        return false;    }        $sql = "SELECT seller FROM ".$GLOBALS['ecs']->table('users'). " AS u WHERE u.user_id = '$user_id'";    $seller_id = $GLOBALS['db']->getOne($sql);        if(0 !== intval($seller_id)){        return false;//用户已分配    }        $sql_admin = "SELECT user_id, cur_assign FROM "                 .$GLOBALS['ecs']->table('admin_user').                 " WHERE if_assign = 1 ORDER BY user_id ASC";    $all_seller = $GLOBALS['db']->getAll($sql_admin);        $cur_seller = 0;//当前分配业务员id    $last_seller = 0;//上次分配业务员id    $cnt_seller = count($all_seller);    for($i = 0; $i < $cnt_seller; $i++){        if(1 == $all_seller[$i]['cur_assign']){            $last_seller = $all_seller[$i]['user_id'];            $assign_key = ($i == $cnt_seller - 1) ? 0 : $i + 1;//获取下一个未分配的客户id            $cur_seller = $all_seller[$assign_key]['user_id'];            break;        }    }        //未分配成功时从第一个开始分配    if(0 == $cur_seller && $cnt_seller > 0){        $cur_seller = $all_seller[0]['user_id'];    }        //更新用户隶属于的业务员    $sql = "UPDATE " . $GLOBALS['ecs']->table('users') . " SET seller='$cur_seller' WHERE user_id='$user_id'";    $GLOBALS['db']->query($sql);        //更新当前分配的业务员    $sql = "UPDATE " . $GLOBALS['ecs']->table('admin_user') . " SET cur_assign=1 WHERE user_id='$cur_seller'";    $GLOBALS['db']->query($sql);        //更新上次分配的业务员    $sql = "UPDATE " . $GLOBALS['ecs']->table('admin_user') . " SET cur_assign=0 WHERE user_id='$last_seller'";    $GLOBALS['db']->query($sql);        return true;}/** * 更新用户SESSION,COOKIE及登录时间、登录次数。 * * @access  public * @return  void */function update_user_info(){    if (!$_SESSION['user_id'])    {        return false;    }    /* 查询会员信息 */    $time = date('Y-m-d');    $sql = 'SELECT u.user_money, u.pay_points, u.user_rank, u.rank_points, '.            ' IFNULL(b.type_money, 0) AS user_bonus, u.last_login, u.last_ip'.            ' FROM ' .$GLOBALS['ecs']->table('users'). ' AS u ' .            ' LEFT JOIN ' .$GLOBALS['ecs']->table('user_bonus'). ' AS ub'.            ' ON ub.user_id = u.user_id AND ub.used_time = 0 ' .            ' LEFT JOIN ' .$GLOBALS['ecs']->table('bonus_type'). ' AS b'.            " ON b.type_id = ub.bonus_type_id AND b.use_start_date <= '$time' AND b.use_end_date >= '$time' ".            " WHERE u.user_id = '$_SESSION[user_id]'";    if ($row = $GLOBALS['db']->getRow($sql))    {        /* 更新SESSION */        $_SESSION['last_time']   = $row['last_login'];        $_SESSION['last_ip']     = $row['last_ip'];        $_SESSION['login_fail']  = 0;        /* 取得用户等级和折扣 */        if ($row['user_rank'] == 0)        {            // 非特殊等级,根据等级积分计算用户等级(注意:不包括特殊等级)    
复制代码

  变成了一坨这样的东西。一开始以为是自己的程序问题,备份后再次上传,仍然如此。。。。。因此,怀疑是上传的文件触发了阿里云的安全机制。有些文件时正常的,有些文件会莫名地把换行符给干掉。

  于是将文件打包成一个压缩包以后再上传,这时完好如初。。。。。






本文转自秋楓博客园博客,原文链接:http://www.cnblogs.com/rwxwsblog/p/4660832.html,如需转载请自行联系原作者
相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
存储 监控 安全
360 企业安全浏览器基于阿里云数据库 SelectDB 版内核 Apache Doris 的数据架构升级实践
为了提供更好的日志数据服务,360 企业安全浏览器设计了统一运维管理平台,并引入 Apache Doris 替代了 Elasticsearch,实现日志检索与报表分析架构的统一,同时依赖 Doris 优异性能,聚合分析效率呈数量级提升、存储成本下降 60%....为日志数据的可视化和价值发挥提供了坚实的基础。
360 企业安全浏览器基于阿里云数据库 SelectDB 版内核 Apache Doris 的数据架构升级实践
|
14天前
|
消息中间件 人工智能 监控
|
21天前
|
消息中间件 Cloud Native Serverless
飞天发布时刻丨阿里云 ApsaraMQ 全面升级,携手 Confluent 发布全新产品
阿里云在3月29日的飞天发布时刻宣布ApsaraMQ全面升级,实现全系产品Serverless化,与Confluent合作推出新产品,强化云原生消息队列服务。
|
1月前
|
弹性计算
2024阿里云服务器购买、续费、升级配置价格表新鲜出炉!
2024年阿里云服务器购买、续费、升级优惠政策整理,阿里云服务器优惠价格表:轻量2核2G3M服务器61元一年、2核4G4M带宽165元1年,云服务器4核16G10M带宽26元1个月、149元半年,阿里云ECS云服务器2核2G3M新老用户均可99元一年续费不涨价,企业用户2核4G5M带宽199元一年。
398 2
|
2月前
|
弹性计算 大数据 测试技术
2024年阿里云服务器新购、续费、升级优惠信息整理汇总
随着云计算技术的深入普及,越来越多的企业和个人选择阿里云作为他们的云服务提供商。然而,续费成本往往成为用户考虑的重要因素。为了帮助用户更经济地续费,阿里云推出了一系列优惠活动和代金券。2024年阿里云服务器优惠活动,轻量2核2G3M服务器61元一年、2核4G4M带宽165元1年,云服务器4核16G10M带宽26元1个月、149元半年,阿里云ECS云服务器2核2G3M新老用户均可99元一年续费不涨价,企业用户2核4G5M带宽199元一年
153 2
|
29天前
|
Ubuntu JavaScript 关系型数据库
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客
在阿里云Ubuntu 20.04服务器上部署Ghost博客的步骤包括创建新用户、安装Nginx、MySQL和Node.js 18.x。首先,通过`adduser`命令创建非root用户,然后安装Nginx和MySQL。接着,设置Node.js环境,下载Nodesource GPG密钥并安装Node.js 18.x。之后,使用`npm`安装Ghost-CLI,创建Ghost安装目录并进行安装。配置过程中需提供博客URL、数据库连接信息等。最后,测试访问前台首页和后台管理页面。确保DNS设置正确,并根据提示完成Ghost博客的配置。
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客
|
1月前
|
存储 分布式计算 网络协议
阿里云服务器内存型r7、r8a、r8y实例区别参考
在阿里云目前的活动中,属于内存型实例规格的云服务器有内存型r7、内存型r8a、内存型r8y这几个实例规格,相比于活动内的经济型e、通用算力型u1实例来说,这些实例规格等性能更强,与计算型和通用型相比,它的内存更大,因此这些内存型实例规格主要适用于数据库、中间件和数据分析与挖掘,Hadoop、Spark集群等场景,本文为大家介绍内存型r7、r8a、r8y实例区别及最新活动价格,以供参考。
阿里云服务器内存型r7、r8a、r8y实例区别参考
|
1月前
|
SQL 弹性计算 安全
购买阿里云活动内云服务器之后设置密码、安全组、增加带宽、挂载云盘教程
当我们通过阿里云的活动购买完云服务器之后,并不是立马就能使用了,还需要我们设置云服务器密码,配置安全组等基本操作之后才能使用,有的用户还需要购买并挂载数据盘到云服务器上,很多新手用户由于是初次使用阿里云服务器,因此并不知道这些设置的操作流程,下面给大家介绍下这些设置的具体操作流程。
购买阿里云活动内云服务器之后设置密码、安全组、增加带宽、挂载云盘教程

热门文章

最新文章