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

  最近对放在阿里云的程序作了升级,但在升级的时候却出现了一个莫名其妙的问题,导致整个应用无法使用。这是一个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)        {            // 非特殊等级,根据等级积分计算用户等级(注意:不包括特殊等级)    

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

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

时间: 2024-08-29 13:33:25

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

[技术博客]阿里云签名机制字符串的C语言实现

[技术博客]阿里云签名机制字符串的C语言实现 问题描述见:阿里云签名机制 话不多说,上字符串函数转化函数代码 bool AlicloudRequest::sendV2Request() { if( query_parameters.find( "Action" ) == query_parameters.end() ) { this->errorCode = "E_INTERNAL"; this->errorMessage = "No acti

再次升级!阿里云Kubernetes日志解决方案

摘要: 今天阿里云Kubernetes日志解决方案再次升级,为您带来以下改进: 1.极致部署体验:只需一条命令一个参数即可完成整个K8S集群的日志解决方案部署. 2.支持更多配置方式:除原生控制台.SDK配置方式外,支持通过CRD方式进行配置(kubectl.控制台.K8S openapi). 背景 针对K8S日志采集存在的采集目标多.弹性伸缩难.运维成本大.侵入性高.采集性能低等问题,在18年2月份日志服务和容器服务团队一起发布了阿里云Kubernetes日志解决方案.1分钟内即可完成整个集群

天河微信小程序入门:阿里云tomcat免费配置https

天河君在第一时间通过了微信小程序验证,开启了我的微信小程序之旅.因为天河君之前是一名后端狗,对前端不是很了解,所以几乎可以认为是从零开始学做微信小程序.也希望有志在微信小程序方向做点事情的朋友能够和我一起,共同进步,以致千里.上一篇是天河君在通过验证之后,兴奋的立即上手,在手机上跑了一回微信小程序.(天河微信小程序入门<一>)冷静下来后,天河发现,之前的很多demo在手机上都用不了,因为公测后得到了appId,结果导致无法与后台通讯,appId和后台的服务器域名是绑定的.没有后台的小程序是不完

ESA2GJK1DH1K升级篇: 阿里云物联网平台 OTA: 关于阿里云物联网平台 OTA 的升级流程

前言 鉴于有些用户直接想使用现成的物联网平台实现 OTA 远程升级 我就写一写这系列的文章 注意:首先大家必须把我自建服务器是如何实现的看明白! 我看了下阿里云提供的,实际上流程和咱自建实现的差别不大 https://help.aliyun.com/document_detail/85700.html?spm=a2c4g.11186623.6.699.6292740d5hzKl6 首先控制升级获取当前程序的版本号等走的还是MQTT 设备端首先通过MQTT获取云端的版本信息,还有程序固件的http

.Net程序测试使用阿里云OCS开放缓存服务

 首先需要有一个阿里的OCS实例和ECS云服务器 请确认这两个是在同一个可用区的,这个很重要! 这两个可以在阿里云官网申请得到 拿到OCS之后 进入OCS控制台,点击下面的客户端下载选择.Net客户端,或者直接点这里下载.Net客户端 下载下来的是一个压缩文件,解压之后是可能是一个没有格式的文件,不要管它,用winrar或者其他的解压软件在解压一次 得到一个文件夹,里面放的是一个VS的解决方案,如图 这就是一个客户端,双击打开解决方案 选择Enyim.Caching项目重新生成一下 右键打开

由于阿里云磁盘空间导致hadoop的yarn节点处于UNHEALTHY状态

最初使用的阿里云云盘只有50G 正常运行的hadoop集群突然无法正常运行了,web页面显示节点为UNHEALTHY 使用df -m命令,发现一些节点磁盘空间占用达到了99%,因此要扩容磁盘空间 1.为云盘建立快照,以防出错 2.磁盘扩容 3.选择扩容容量,选在线扩容,付费 4.如果是centos7 此处以CentOS 7操作系统为例演示分区扩展的步骤. 运行fdisk -l命令查看现有云盘大小. 以下示例返回云盘(/dev/vda)容量是100GiB. [[email protected] ~

部署 Java 应用程序到阿里云 ECS

前言 随着云计算技术突飞猛进的发展,越来越多的开发者选择将应用程序部署到阿里云的 ECS 机器上,这里是一篇教程文章,介绍如何将本地开发的 Java 应用程序,部署到阿里云 ECS. 本地开发 无论是编写云端运行的,还是编写本地运行的 Java 应用程序,代码编写本身并没有特别大的变化,因此本文采用一个及其基础的样例<在 Web 页面打印 HelloWorld 的 Java Servlet >为例,做参考. public class IndexServlet extends HttpServl

阿里云中间件推出全新开发者服务

摘要: 要码出未来,除了程序员专属的节日福利,还需要实打实的为程序员解决手头的难题. 10月24日,阿里云推出全新开发者服务,发布多款开发工具,包括Alibaba Cloud Toolkit .链路追踪Tracing Analysis和应用高可用服务AHAS等,旨在帮助开发者们提高开发效率,降低运维复杂性. 要码出未来,除了程序员专属的节日福利,还需要实打实的为程序员解决手头的难题. 10月24日,阿里云中间件推出全新开发者服务,发布3款开发工具,包括Alibaba Cloud Toolkit

在阿里云的CentOS环境中安装django

购买了一台阿里云主机.操作系统为CentOS 6.5.准备在上面跑Django做Web开发.因为CentOS自带的python版本号较低,安装Django先要安装新版本号python.还是费了点周折. 1,升级Python 阿里云给配置好的centos 6.5下的默认Python版本号是2.6,跟Django的最新版本号须要的Python环境是不配套的.在django的安装文档里有: Being a Python Web framework, Django requires Python. It