You cannot see this page without javascript.

몇가지 환경을 검토한 후에 의심이 가는 부분은 사용하는 미들웨어(php) 버전이 7.x.x 버전이라 함수가 맞지 않는 것은 아닐까 하는 의심이 들었다.

 

먼저 업로드에 관한 구분을 확인하기 위해 에드온의 소스를 검토해본 결과 에드온에서 업로드 하는 것이 아닌것을 알 수 있었고, 보드의 모바일 스킨중 ex연동 스킨의 소스를 다시 뜯어보았다.

 

스킨에 폼은 있으나 업로드 관련기능 구현은 mobileex 모듈에서 하고 있었다.

 

다시 mobileex 모듈에서 소스를 여기저기 파해쳐 보았다.

 

의심 가는 곳은 두곳으로 압축되었다.

 

mobileex.controller.php 파일의 79번째줄

if( !eregi(strtoupper(str_replace('.', '', $allow_filetype->file_ext)),$imglist) ) $is_img = 'N';

 

mobileex.model.php 파일의 54번째줄

if(!eregi($file_name_ext,$allowed_filetypes) && $logged_info->is_admin != 'Y') $allow_filetype->allowed = false;

 

위의 두 줄은 php의 eregi함수를 쓴다.

 

이 함수는 php7에서는 보안취약점에 의하여 사라진 함수이며, php7에서는 preg_match함수로 대체하여 사용하여야 한다.

 

그리하여 다음과 같이 바꾸었다.

 

mobileex.controller.php 파일의 79번째줄

if( !preg_match("/strtoupper(str_replace('.', '', $allow_filetype->file_ext))/i",$imglist) ) $is_img = 'N';

 

mobileex.model.php 파일의 54번째줄

if(!preg_match("/$file_name_ext/i",$allowed_filetypes) && $logged_info->is_admin != 'Y') $allow_filetype->allowed = false;

 

그런대 재미있는 것은 이 모듈의 다른 문장에서 문자열 검출을 위한 함수는 모두 대체 함수를 쓰고 있다는 것이다.

 

왜 이 두줄에서만 예전 함수를 사용하는 지 의문이 든다.

 

아무튼 이렇게 수정 후 php7에서도 정상적으로 동작하는 것을 확인하였다.

엮인글 :
List of Articles
번호 제목 글쓴이 날짜sort 조회 수
29 Programing make - 05 내부 매크로 LynX 2017-02-22 897
28 Programing make - 06 make 규칙 LynX 2017-02-22 242
27 Programing make - 07 접미사 규칙 LynX 2017-02-22 1853
26 APM http 프로토콜 https 로 리다이렉션 LynX 2017-07-14 228
25 CentOS CentOS7 GCC-5.1.1 yum install LynX 2017-11-10 473
24 CentOS CemtOS 7.3 base Trinitycore 3.3.5 Compile file LynX 2017-11-13 520
23 CentOS centos7 groonga install LynX 2017-12-04 583
22 Linux modsecurity LynX 2017-12-06 475
21 Linux 라그나로크 LynX 2017-12-07 2366
20 Linux libiconv LynX 2017-12-08 416
19 APM PHP-7.2.0 LynX 2017-12-12 3015
18 APM mysql ./configure LynX 2017-12-15 730
17 APM LZ4_LIBS Not Found (CentOS7, MariaDB 10.1.29) LynX 2018-01-03 420
16 Linux wkhtmltopdf wkhtmltoimage install LynX 2018-01-31 550
15 HTML Tag CSS 여러가지 모양 만들기 LynX 2018-02-08 709
14 CentOS CentOS7 커널 업데이트 LynX 2018-04-23 645
13 APM MySQLTuner 설치 LynX 2018-04-27 457
12 APM 윈도우에 APM 페키지 설치 file LynX 2018-05-04 474
11 CentOS cli 무선랜 LynX 2018-06-07 365
10 Printer cura usb connection LynX 2018-07-06 614

XE Login