조회 수 144 추천 수 0 댓글 8
Extra Form
문제 페이지 URL http://testrhymix.iwinv.net

test.png

 

IWINV

Linux 64Bit Apache 2 UTF-8 PHP 7.0 MariaDB 10.1.20

 

http://testrhymix.iwinv.net

계정 test / test

 

태그 입력 가능한 부분에 <script> 입력하면 저 메세지가 뜨네요.

<style> <meta>는 정상적으로 저장됨.

저만 그런건지~

Atachment
첨부 1
  • profile

    https://github.com/rhymix/rhymix/commit/c3f1e24b02a62e229234149df9c9949da94c75d0
    원래 관리자는 예외였지만, 관리자 권한이 탈취될 경우를 대비하여 보안정책이 바꼈습니다. 기존에는 관리자 권한이 탈취될 경우 공격자가 서버나 클라이언트에 심각한 손상을 줄 수 있었습니다. 이는 XE도 마찬가지입니다.

  • profile profile
    스샷에 보면 레이아웃편집 기능이 아닌 관리자 설정의 상.하단 스크립트도 입력이 안되게 되었는데 그러면 이제 XE,라이믹스 모두 레이아웃의 파일등에 삽입하지 않은 스크립트는 어디서도 입력하지 못하게 되는 건가요?

    XE커밋의 코멘트를 보니 이 보안정책 Y,N 설정도 하지 못하게 정한 것 같던데요.
  • profile profile

    네. 웹상에서 스크립트를 입력할 수 없습니다. 번거롭지만 파일에 직접 입력해야 합니다. 특정 스크립트를 삽입하는 애드온을 만들어도 되구요.

  • profile profile

    보안과 여러가지 불편함을 맞바꾸게 되었네요.
    당장 네이버아날리틱스 id를 SEO모듈에서 넣어도 안되는 문제가 있어 하단스크립트 입력란에 스크립트를 넣어 작동시키고 있는데요.

    이런 배려는 아예 없애버리고 적용해 버렷네요.

    보안이 중요하지 않다는 것은 아니지만 직접 뭘 하기 어려운 많은 단순 사용자들이 어려움을 겪게될 1.11로 느껴집니다.

    레이아웃 설정 등에 넣어서 작동 시키고 있는 것들도 뭐가 있는지 파악부터 해보고 업데이트를 해야겠네요.

     

    설정값에 의존하게 한다고 알고 있어서 별 신경쓰고 있지 않았는데...  흠....

  • profile profile
    그리고 레이아웃의 경우 같은 레이아웃을 복사해서 메인과 서브 또는 여러 페이지에 구분해서 복사한 레이아웃을 사용하는게 일반적인 상황인데요.

    이런 경우 각 레이아웃에 필요에 의해 구분해서 넣었던 스크립트도 이제 원천봉쇄인데..
    이런 경우 문제가 발생하는 경우 해결하려면 어려운 곳도 많을 것 같습니다.

    저희도 특별한 사정에 의해 복사한 레이아웃을 여러 페이지에 제공하고 있는데 이 경우 입력된 값을 사용하지 못하게 된다면 원본파일에 넣고 조건을 걸던 방법을 사용해야 하는 경우가 생기는데요.

    코어 개발자분들이 혹시 저희 운영자들을 모두 개발자수준으로 생각하시는건 아닌지 하는 푸념 같은 생각이 듭니다.
  • profile

    XE에서는 php.ini 설정에 따라 PHP로 해석될 가능성이 있는 태그만 엄격하게 금지하고 있습니다.

     

    예: <? foo(); ?> <% bar(); ?> <script language="php"> baz(); </script>

     

    물론 위와 같은 문법은 PHP 최신 버전에서는 대부분 사용이 불가능하거나 권장하지 않는 것들이지요. 대부분의 분들은 저 위의 3가지 문법 중 2가지는 본 적도 없을 겁니다. 저게 작동한다는 것 자체가 황당한 일이고요.

     

    라이믹스에서는 이것에 더하여, 관리자가 아닌 경우 일반적인 <script> 태그도 모두 필터링하고 있었습니다. 글과 댓글의 본문 등 흔히 HTMLPurifier를 거치는 변수들 뿐 아니라, 관리자가 아닌 경우 모든 변수를 필터링하고 있었지요. (패치 1)

     

    그런데 이번에 XE에서 위의 필터링 기준을 관리자와 비관리자에게 동일하게 적용하도록 바뀌었습니다. 그동안 관리자는 위와 같이 이상한 PHP 태그를 쓰더라도 받아주었지만, 이제 더이상 안 받아준다는 거지요. 아마 특정한 보안취약점이 제보되어 이렇게 바뀐 것 같습니다. (패치 2)

     

    그런데 이 변경내역을 라이믹스로 가져오다 보니 패치 1과 패치 2가 충돌하여 문제가 발생했습니다. 위와 같이 위험한 태그뿐 아니라 일반적인 <script> 태그마저 관리자, 비관리자 상관없이 모두 필터링하는 결과가 나오고 말았네요. 즉, 의도치 않게 너무 엄격하게 되어 버렸습니다.

     

    이 문제는 곧 수정하여 1.9.8.4 버전을 내놓도록 하겠습니다.

  • profile profile
    다행이네요. 저는 이번 업데이트부터 사용했던 기능 자체를 모두 사용을 금지하는 것인줄 알고 놀랬습니다.
  • profile profile
    업뎃하니 잘되네요~
    호우~

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