그누보드 허점 - PHP 끝 태그 남용 문제 해소하는 프로그램 정보
최신글 그누보드 허점 - PHP 끝 태그 남용 문제 해소하는 프로그램첨부파일
본문
PHP 끝 태그를 남용하는 경우 어떤 문제가 초래하는지 전번에 게시했습니다.
https://sir.kr/g5_builder/4014 에서 상세 내용 읽어주세요.
실지 이 문제가 그누보드에서 어떻게 잠재하고 있는지 함께 봅시다.
그누보드페이지에서 웃메뉴바에 접속자수를 보여주는 부분 다들 보았을겁니다.
접속자수 출력해주는 코드파일이 /theme/basic/skin/connect/basic/connect.skin.php 인데요
다음 이미지와 같이 ?> 끝 태그 다음에 빈 행이 있고 그 다음에 접속자수를 출력하고 있습니다.
이 파일을 실지 불러와 사용하는데가 /theme/basic/head.php 34행입니다.
이제 페이지에서 접속자부분을 개발자방식으로 지적하여 실지 html로 어떻게 반영되었는지 다음 이미지를 보면 이해가실겁니다.
사실 뭐 크게 문제 발생하는것은 없지만, 이런 식으로 PHP 끝 태그를 남용하다가는 언제 어데서 문제가 복잡해져도 디버깅이 곤란해지게 됩니다.
위의 문제가 깨끗히 해소되자면 다음과 같이 변경되어야 합니다.
제가 그누보드의 이러한 문제를 해소하는 php코드를 간단히 작성했습니다.
사용방법:
1. 첨부파일을 다운로드 합니다.
2. clear.php파일을 그누보드가 설치된 루트폴더안에 복사합니다.
3. 웹 브라우저에서 clear.php 코드를 실행합니다.
예: http://localhost/gnuboard/clear.php 저의 경우 그누보드 소스가 DocumentRoot/gnuboard/에 있거든요.
그누보드 5.3.4를 가지고 테스트 한 결과 390개 코드파일을 수정변경했습니다.
그리고 그누보드 정상작동에 부정적 영향 전혀 없었습니다.
단, /theme/basic/skin/connect/basic/connect.skin.php 파일은 정규식 구분이 신통치 않아 원만히 해소되지 않는데요, 개별적으로 이 파일은 첨부한 파일로 덮어쓰고 사용하시면 됩니다.
저의 노력 많은 도움 되길 희망합니다...
36
댓글 전체
아울러
그누보드를 거의 기본 상태로 사용하고 있어서
패치를 덮어 쓰고 있는데, 그때마다 매번 제거작업을 해야합니까?
새 패치파일만 제거하시려면 좀 복잡한데요,
새 패치파일들을 일일히 오픈하여 PHP끝 태그 붙었는지 체크하심이 번거롭지요, 그냥 매번 제거작업 하심이 큰 불편이 없을거 같네요.
추천 100개 드립니다.
스왈로우님의 나눔공개에 감사의 맘을 전합니다.
저의 글에 추천을 주신 여러분께 다시금 인사드려요,
저는 자기만의 PHP Framework을 만드는 과정에 위와 같은 문제를 직면했더럤는데 작게 생각하구 공개하여 모두가 기뻐하시니 저두 놀랍기만 합니다.
능력 공유에 감사할뿐입니다. 컴퓨터 키면 적용해보고싶네요
대대적인 업데이트 한번 있겠군요.
@swallow 님, 수고하셨습니다.
그누는 PHP 코딩표준도 안지키는..
이런 좋은 자료가 잇었네요