程式升級觸發阿里雲自身安全機制導致的莫名問題
最近對放在阿里雲的程式作了升級,但在升級的時候卻出現了一個莫名其妙的問題,導致整個應用無法使用。這是一個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) { // 非特殊等級,根據等級積分計算使用者等級(注意:不包括特殊等級)
變成了一坨這樣的東西。一開始以為是自己的程式問題,備份後再次上傳,仍然如此。。。。。因此,懷疑是上傳的檔案觸發了阿里雲的安全機制。有些檔案時正常的,有些檔案會莫名地把換行符給幹掉。
於是將檔案打包成一個壓縮包以後再上傳,這時完好如初。。。。。
相關文章
- Fastclick 導致click事件觸發兩次的問題AST事件
- chorme自動升級導致跨域問題ORM跨域
- xcode升級導致cocoapods很多奇葩問題XCode
- linux 使用不安全的sprintf函式,儲存字元越界導致程式莫名崩潰問題Linux函式字元
- 阿里雲大面積故障原因:觸發一個未知程式碼bug導致阿里
- MYSQL 5.7 升級 8.0 後的 由於字符集導致的大問題 ?MySql
- ASP.NetMVC3安全升級導致程式集從3.0.0.0變為3.0.0.1ASP.NETMVC
- MyBatis版本升級導致OffsetDateTime入參解析異常問題覆盤MyBatis
- 記一次升級Gradle外掛導致相容問題的解決方案Gradle
- WPF 已知問題 監聽 WMI 事件導致觸控失效事件
- 一次oracle行級鎖導致的問題Oracle
- WebSocket的事件觸發機制Web事件
- SCHEDULER呼叫XDB程式導致效能問題
- ANALYZE導致的阻塞問題分析
- MySQL Flush導致的等待問題MySql
- wpf popup導致MouseLeftButtonUp無法觸發
- Yii中事件觸發機制事件
- 理解Cookie和Session機制,及其安全問題CookieSession
- 升級Xcode10導致的編譯錯誤XCode編譯
- 【YashanDB知識庫】EXP導致主機卡死問題
- 阿里雲ACK從1.22升級到1.24問題彙總阿里
- MIUI8開發版升級常見問題彙總 MIUI8開發版升級問題解答UI
- Handler機制的問題
- update的機制問題
- 克隆ORACLE軟體的導致的問題Oracle
- 使用資料庫處理併發可能導致的問題資料庫
- crontab設定導致的伺服器程式異常問題伺服器
- web安全機制問題詳解之二:CSRFWeb
- 升級可能導致資料庫不可用(二)資料庫
- 升級可能導致資料庫不可用(一)資料庫
- CAS導致的ABA問題及解決
- MySQL8.0 view導致的效能問題MySqlView
- golang slice使用不慎導致的問題Golang
- 分散式鎖導致的超賣問題分散式
- 關於觸發器在行級和語句級的執行順序問題觸發器
- Win10系統升級時導致電腦無法開機的解決方法Win10
- 修改計算機名後導致Oracle無法訪問的問題修復計算機Oracle
- JDK升級問題小結JDK