물어보기XpressEngine
Extra Form

이건 원천적으로 앞으로도 완전하게 사용불가 인가요?

 

XE 사용하면서 불편하면서도 왜 이렇게 될 수 밖에 없지..  웹에서 안되는게 있네 ? 이런 생각을 하게 하는 부분입니다.

물론 지식이 전혀 없으니 이렇게 생각을 할 수 밖에 없겠죠.

 

XE사용 초기때 

게시판 상단 설정에 모바일과 PC를 구분해서 광고를 출력하기 위해 코드를 넣고 왜 안되지 하고 삽질하던 때가 있었습니다.

 

이와 비슷하게 레이아웃,게시판 스킨 등에 특정한 문구를 스킨 수정없이 설정의 입력으로 받아 처리하고 싶지만 이게 반쪽자리인게 XE에서 사용하는 비로그인/로그인, 모바일/PC, 게시판구분 등...  다양한 조건을 사용할 수 없다는 것 입니다.

 

이부분은 사실 불완전한 형태인데 초기부터 지금까지 이것에 대한 다른 대안은 없는 것 같아 좀 의아한 부분입니다.

 

혹시 가능한데 제가 모르고 있는 방법이 있나요?

 

  • profile
    Double'U' 2018.05.16 11:53:10
    설정의 입력칸이라면 게시판 기본설정의 상단내용같은 것을 말씀하시는 것인가요?

    보통 그런 입력칸은 html까지만을 지원하죠.
    서버사이드언어인 php같은 것은 지원하지 않죠. 클라이언트사이드언어는 지원할꺼에요.
    html이나 자바스크립트같은거요.

    기술적으로 어렵다기 보다는 상대적으로 해킹에 취약하기 때문에 그렇지 않을까 생각합니다.
  • profile
    웹지기 2018.05.16 11:55:49
    네. 본문에 적었드렸듯이 게시판 설정의 상단 설정에 광고를 모바일,PC 구분해서 출력해 보려고 시도해 보고 처음 알았었습니다. 그와 같은 상황이죠.
    지식이 없다보니 이유를 알지 못하고 그냥 의아하다고만 생각하고 있네요.
  • profile
    Double'U' 2018.05.16 12:04:35
    관리자만 사용하는 설정과는 좀 다른 예이기는 하지만

    게시판을 만들때 보안 내용 중에 db로 입력되기 전에 걸러야 하는 것들이 있거든요.
    주로 db와 관련된 명령어 같은 것 들이죠.
    개인정보를 다루는 경우에 지켜야 하는데 게시판도 이름, 비번만 들어가도 개인정보가 되서 지켜야 하는 것이거든요.
    개인정보는 db에 들어가 있으니 게시판에 글을 쓸 때 db를 접속할 수 있는 문구들은 아예 허용을 시키면 안되는 거거든요.

    다시 돌아와서 관리자만 사용하는 설정이라고 하더라도 그 부분이 뚫리면 굳이 서버를 작접 뚫지 않고도 웹만으로 db에 마음대로 접근이 가능하기 때문에 막은 것이라고 봐요.
    게다가 알려진 프로그램인 db구조도 뻔하니까요.
    물론 db를 접근할 수 있다면 구조도 다 볼수 있으니 db테이블 접두사(기본값인 xe_)같은걸 을 바꿔도 상관없죠.
  • profile
    이온디 2018.05.16 12:38:21
    자바스크립트로 구분해보는 건 어떤가요?
  • profile
    Double'U' 2018.05.16 13:29:14
    자바스크립트는 클라이언트언어니까 상관없겠죠.
  • profile
    웹지기 2018.05.16 11:58:29
    이런 생각까지 해봤습니다.

    그럼 미리 여러 다양한 조건의 광고,문구 등을 html로 만들어 서버에 올려 놓고
    설정에서 이 파일을 불러오게라도 해야 하는 건가.....

    미리 만들어 놓은 것을 수시로 게시판마다 상황에 따라 바꿀 수 있다는 약간의 개선점은 보이지만..

    결국 html을 직접 수정해야 하는 경우는 스킨을 직접 수정하는 것과 비슷한 작업이 필요하다는 점에서 시도하기가 약간 회의적인 생각이 들더라구요.
  • profile
    Double'U' 2018.05.16 12:05:59
    특정한 명령어를 미리 만들어서 이용하는 것은 문제가 안될꺼에요.
    만드는게 귀찮을 뿐이죠.
    하지만 다 열어두는 건 위험해요.
  • profile
    웹지기 2018.05.16 12:07:54
    제가 궁금한건 그 위험하다고 말씀하신 것을 우회할 다른 대안적인 방법으로 설정에서 입력받은 내용을 적용할 수 는 없냐는 근본적인 해결에 대한 것입니다.
    절대적으로 안되는 것을 희망하는 것이라면 뭐 빠른 단념이 답이겠죠.
  • profile
    Double'U' 2018.05.16 12:11:56
    특정 명령어(변수)를 만들어 해당하는 것만을 해석하게 넘겨주는건 가능할겁니다.
    그러나 사이트마다 원하는 것이 다르기에 어떤 변수를 만드느냐가 문제이고, 또 그것을 다수가 원하느냐이겠죠.

    직접 개발하는 사이트라면 그런 변수를 만들어서 적용할 수 있어요.
    치환하면 되거든요.

    그런데 xe같은 것은 범용이기에 그런 것이 필요하면 레이아웃에서 하면 되요~라고 하는 거겠죠.
  • profile
    웹지기 2018.05.16 12:17:02
    특별한 것을 원하는 것이 아닙니다.

    레이아웃,보드스킨 에서
    <!--@if($is_logged)-->블라블라<!--@end-->

    라고 스킨을 내려받아 수정해서 다시 업로드하고 하는 이런것이


    게시판 스킨설정 입력에서도
    <!--@if($is_logged)-->블라블라<!--@end-->
    똑같이 사용하고자 하는 욕구입니다.

    왜냐면 같은 것을 수정할때 전자는 개발자에 가까운 사람이 취하는 자세일 수 있고 후자는 개발과는 거리가 먼사람이 취하기 쉬운 자세입니다.

    지금 현재로선 컴파일 시점의 문제로 혹은 말씀 하신 보안상의 문제인지는 잘 모르겠습니다.

    <!--@if($is_logged)--><!--@end-->
    이 부분이 무용지물이 되니 아쉽다는 거죠.
  • profile
    Double'U' 2018.05.16 12:28:56
    if문이 별거 아닌것 같아도 저런 문구를 처리하려면 꽤 복잡하겠어요.
    if문의 시작과 끝뿐만이 아니라 그 안에 들어갈 블라블라부분도 해결해야 하니까요.
    그리고 if문의 괄호에 들어가는 조건에도 제약을 걸어야 하거든요.
    그안에서 db 관련된 명령어를 돌릴 수도 있으니까요.
    예를 들면 db의 특정 테이블을 삭제하는 명령을 돌릴 수 있겠죠.
    이렇게 제약을 추가하다보면 할 수 있는게 많지 않아져요.

    예를 들어 로그인 상태에 따라서만 다르게 보여주는 것을 처리하자면
    로그인일때 보여주는 상단내용
    로그아웃일때 보여주는 상단내용
    같은 입력칸을 추가하는게 훨씬 수월하겠어요.

    if문 같이 범용적인 명령어에 주렁 주렁 제약을 걸어서 겨우 사용할 수 있게 하는 것보다는
    사람들이 많이 사용할만한 옵션을 추가하는게 수월하죠.

    둘다 결과는 같을꺼에요.
    그렇지만 입력칸이 직접적으로 있는게 사용하기도 편하겠죠.
  • profile
    웹지기 2018.05.16 12:32:44
    관리자가 스킨에서 직접 수정하는 것 / 관리자가 웹에서 설정에서 수정하는 것
    "예를 들면 db의 특정 테이블을 삭제하는 명령을 돌릴 수 있겠죠."
    를 막아주기 위해서 라고 보기 좀 어려운데요.

    관리자는 스킨에 직접 말씀 하신 부분을 넣을 수도 있습니다. 그리고 웹에서 게시판 설정에 넣을 수도 있겠죠.

    로그인일때 보여주는 상단내용
    로그아웃일때 보여주는 상단내용
    같은 입력칸을 추가하는게 훨씬 수월하겠어요.

    위 와 같은 입력칸을 만드는데는 한계가 있어 하나의 입력에서 그냥 조건을 사용하고 싶다는 이야기이니 도돌이표 같은 이야기가 계속 되는 것 같네요.
  • profile
    Double'U' 2018.05.16 13:28:46
    보안이라는건 관리자 기능이니까 당연히 "완벽하게 뚫리지 않아"라는 것을 가정하지 않죠.
    관리자 권한을 얻어내거나 아이디 비번이 노출되거나 하는 등으로 관리자 권한을 얻었을 때 더 큰 참사를 막기 위한 것이니까요.
    ftp나 서버가 뚫린 건 뭐든 할 수 있으니 논외로 하구요.

    조건이라는 건 필수적으로 조건이 무엇인지가 들어가야 합니다.
    (로그인 유무 같은)
    그런데 if문을 쓸수 있는데 어떤 조건인가를 미리 설정해 둔다면 입력칸을 추가하는 것과 차이가 없다는 거죠.

    if문과 같은 서버사이드언어 자체를 관리자 기능임에도 쓸 수 없도록 한 것은 보안상의 문제로 막은 것으로 가정하면요.
  • profile
    Double'U' 2018.05.16 11:55:54
    일부러 db에 php로 만들어진 문구를 저장해서 사용해본 적이 없어서
    db에서 불러온 php로 된 문자열을 바로 서버에서 해석해서 내보내는지 여부도 확인해 봐야 하구요.
  • profile
    엔데벨 2018.05.16 11:59:02
    상단출력에 템플릿 문법을 적용하려면... 상단출력값을 넘기기 전에 컴파일을 진행해야 합니다.
    그런데 상단출력값이 템플릿 문법이 적용되지 않은 놈이 들어가면 컴파일은 무용지물이 될거고,
    결국 필요없는 프로세스가 추가되어 속도만 느려지겠죠.

    웹지기님처럼 조건문이 필요하신 분도 있고, 상단출력시 조건문 없이 고정된 값을 출력해야 하는 분도 있겠죠.
    조건문을 상단에서 출력하는건 선택적인거니, 굳이 컴파일 단계를 추가해서 속도를 느리게 할 필요는 없다는게 아닐까요?

    말빨이 안되어서 설명이 어렵네요ㅠㅠㅠㅠㅠㅠㅠ
  • profile
    웹지기 2018.05.16 12:01:58

    상단은 한가지 사례일 뿐입니다.

     

    저도 컴파일 시점과 맞지 않아 그럴거라 짐작만 하고 있어요.

    게시판 스킨을 만들때 상단과 같은 방식으로 여러가지 수시로 바꿀 수 있는 입력을 미리 게시판 설정에 마련해 놓고 이걸 사이트 운영자가 게시판마다 필요에 따라 변경해서 사용하라~ 라고 해줄수 있지만..
    제가 말씀 드린 문제 때문에 반쪽짜리가 되어 버린다는거죠.

    운영자는 개발자에 가깝지 않은 사람들이 더 많기 때문에

    관리적인 작업을 더 많이하고 게시판의 광고를 바꾼다거나 노출 대상을 바꾼다거나 할때마다 스킨을 내려받아 스킨을 수정하고 하는 것 보다

    게시파 스킨 설정에 입력해 놓은 부분을 조금씩 수정하는게 훨씬 편리하다는 생각을 자주 하게 됩니다.

  • profile
    엔데벨 2018.05.16 12:19:41

    저도 댓글을 달때 비슷한 생각을 했습니다만, 결론은 저랑 좀 다르네요ㅎㅎ
    "운영자는 개발자에 가깝지 않은 사람들이 더 많기 때문에" 라는 문장인데요...

     

    예시가 좀 안맞을수는 있지만...
    애플의 옛날 매킨토시를 생각해볼 수 있을것 같네요. 실제로 사용해 본 적은 없습니다ㅠ
    옛날엔 매킨토시에 메인보드에 추가 포트 하나 없었다고 하더라구요. 대다수의 사용자는 직접 본체 뚜껑을 열어서  직접 램을 추가하지 않는다고 생각해요. 속도가 느리면 새로 바꾸거나, 업그레이드를 의뢰하죠.

     

    비슷한게 아닐까요?
    웹지기님처럼 직접 제작하고 직접 운영하시는 분들도 계시지만, 대다수의 웹사이트 운영자들은 제작을 의뢰하고, 수정해야 할 게 있다면 수정을 요청한다고 보는게 아닐까요.

     

    XE3를 보면 일반 사용자들은 개발자 없이 쉽게 사용할 수 없겠다는 생각이 듭니다. 오픈소스 프로그램들에 개발자들의 철학이 담긴다는걸 상기해보면, XE 개발진분들은 사용자와 개발자를 나누어서 보는게 아닐까 싶습니다.

     

     

     

     

    역시 뭔가를 논리적으로 설명하는건 디게 어렵네요ㅠㅠㅠㅠ

  • profile
    웹지기 2018.05.16 12:23:39 Files첨부 (1)

    저는 XE1이 추구했던 것이 맘에 들었습니다. 누구나 컨텐츠를 쉽게 만들어 낼 수 있는 그런 CMS로 만들겠다. 마우스 클릭 몇번으로 사이트를 만들고 관리할 수 있는 그런 것이 XE 이다.
    코드를 수정하고 업로드하고 하는 것이 아닌 관리자 로그인으로 설정하고 입력해서 변경하고 하는 것이 가능하다.
    이러한 점이 매력적이라고 느꼈습니다. 왜냐면 저는 프로그래밍에 관심이 없었고 그런 사람을 위해 XE가 만들어졌다고 했고 사실 그랬고 그렇게 저도 사용했으니까요.

    XE3가 향하는 방식은 저로서는 접근하기 어려운 방식입니다.

    쉽게 설명하면 저는 XE가 티스토리보다 조금 더 공부해서 사용해야 하는 툴 정도로 생각하고 있습니다.

    말씀 하신대로 제가 구하지 못하거나 하는 것들은 구매하거나 의뢰해서 만들어 사용했고 그부분에대해 불만은 없습니다.

     

     

     

    aaaa.png

  • profile
    YJSoft 2018.05.16 13:43:16
    보안문제와는 관련 없고 그냥 실행 순서 때문에 발생하는 한계점입니다.(템플릿 파일이 파싱된 이후 설정값이 불러와지기에 별도로 처리하지 않는 이상 그대로 출력됩니다) 현 XE 구조상 관리자 권한이 탈취되면 레이아웃 html 편집 기능을 이용해 어떤 코드라도 실행시킬수 있습니다.
  • profile
    Double'U' 2018.05.16 13:45:32
    오홍. xe구조에서 오는 한계가 있군요.
    전 구조를 몰라서 보안문제이지 않을까 생각했거든요.
  • profile
    웹지기 2018.05.16 13:47:20
    네. 저도 순서때문이라고 오래전에 들었습니다. 구조적으로 뭔가 개선점이 없다면 지금의 구조 안에서 최대한 자동화 할 수 있는 방법을 마련해 봐야겠습니다.
  • profile
    GG 2018.05.16 16:26:37
    위젯.. 으로 하면 되지 않을까요?
  • profile
    웹지기 2018.05.16 16:33:44

    단순히 비로그인 로그인만을 이야기하는 것이 아닌 생각보다 많은 조건이 필요합니다. 다른 조건이 필요한건 그냥 포기하고

    입력으로 비로그인,로그인 구분해서 2개를 입력받게 하고
    모든 게시판에 서로 다른 광고를 설정할 수 있도록 할 예정입니다.

    그 외 다른 xe의 함수나 변수와 연동되어야 할 것들은 스킨에서 기존 처럼 처리할 예정입니다.

     

    아마 말씀하신대로 위젯에 광고를 넣고 위젯 스타일 쪽에 필요한 XE의 조건을 걸면 되긴 할 겁니다. 

    위젯스타일에 조건을 걸어주는 자료가 공개된 적이 있죠. 이런 이유 때문에 스타일에 출력 조건을 걸게 한거죠.


서버에 요청 중입니다. 잠시만 기다려 주십시오...