질문/조언팁/리소스 공유

제가 1월 7일에 기재한 수정방법은 오류가 있네요..  (아... 나서지 말았어야했나..  T^T  꼭 이런단 말입니다....)

2021년 1월 7일에 버그 수정방법으로 사용했던 방법이 글쓴이가 아닌 타 회원의 비밀댓글 확인에 오류를 일으키네요.. 

 

수정밥법을 다른 방식으로 변경합니다  ( 기진곰님 말씀대로 최종수정일을 세션에 적용하기로 했습니다. )

1월 10일 이전에 혹여나 이 글을 참조해 수정하신 경우 다시 재수정해주세요

 

=========================================================

 

modules/comment/comment.item.php 에서

 

1)  function isAccessible  함수에서

 

if($_SESSION['accessibled_comment'][$this->comment_srl])

 

부분을 아래처럼 수정

 

if(isset($_SESSION['accessibled_comment'][$this->comment_srl]) && $_SESSION['accessibled_comment'][$this->comment_srl] === $this->get('last_update'))

 

 

( 참고로 1월 10일 이전에 제 글로 수정하신 분은 아래부분을 수정하시면 됩니다 )

if(!$this->isSecret() && $_SESSION['accessibled_comment'][$this->comment_srl])  

 

 

2) function setAccessible()  함수에서

 

$_SESSION['accessibled_comment'][$this->comment_srl] = TRUE;

 

대신에

 

$_SESSION['accessibled_comment'][$this->comment_srl] = $this->get('last_update');

 

이렇게 수정

 

---------------------------------------------
 

원본글은 : http://sejin7940.co.kr/xe_tips/2053626    ( 제 사이트에 쓴거여서 말이 짧습니다 )

 

 

 

  • profile

    이거 오래전에 공개된 사항인데 이게 버그였네요. 예전에 버그로 보지 않았던 거로 기억하는데요. 제가 제보했던 거로 기억합니다. 물론 깃허브나 개발자에게 제보한건 아니구요.

     

    이미 댓글을 본 사람이라 의미가 없다 라는 관점인 것 같습니다.

    저는 그때 늦었다고 생각해도 다시 볼 수 없게 해주는게 더 낫다는 생각이었습니다.

  • profile ?
    실수로 비공개를 체크 안 하고 공개로 썼다가 그 후 비밀로 단순히 바꾸기만 한거라면
    벌써 보인거니 무관하다 고 할 수도 있겠지만
    그게 아니라 처음에는 공개로 쓴걸... 그 댓글 내용을 수정하면서 비공개로 전환할 수도 있겠죠...
    이 경우는 내용 수정하면서 공개 안 하고픈 내용이 들어갈 수 있는데 그게 그대로 다 노출되어버려요..
    원본 내용이 보이는게 아니라 수정된 내용이 노출되는거니..
    상황에 따라 굉장히 심각한 문제를 만들 수도 있겠죠
  • ? profile
    네. 제가 이 문제를 가지고 이야기할때 같은 생각으로 언급했었습니다.
  • profile

    라이믹스는 $_SESSION['accessibled_comment'][$this->comment_srl] 등의 접근 권한 캐시를 단순히 참/거짓으로 구분하지 않고 권한 부여의 기준이 되는 시간을 기록하도록 되어 있습니다.

    글과 댓글의 경우, 기준이 되는 시간은 최종 수정 시간(last_update)입니다. 비밀댓글로 수정했다면 이 값이 변경되므로, 이전에 부여된 권한은 무효이며 새롭게 체크가 이루어집니다. 따라서 캐시 사용의 혜택을 그대로 누리면서도 보다 정확하게 권한 권리를 할 수 있습니다.

    관련 패치는 약 4년 전에 이루어졌고, 그 후에도 몇 차례 코드 개선이 있었던 것 같지만 큰 틀은 그대로입니다. 동일한 방식으로 XE를 패치하기를 원하신다면 참고하세요.
    https://github.com/rhymix/rhymix/commit/6df32746

     

    결론: 라이믹스 > XE1 ㅋㅋㅋ

  • profile profile
    4년 전이면 제가 이거 발견했을때 즈음 같은데 라이믹스는 역시 그때 패치가 ㅋㅋ 라이믹스 승!
  • profile profile
    네네 그래서 제가 진심어리게 그 당시 추천했던 이유가 단순히 개발팀으로 참여하고 있어서 추천한게 아니라 정말 대응이 빠르고 운영진입장에서 오히려 더 낫거든요 ㅎㅎㅎ

    예전에야 라이믹스가 개발초기단계라 우선 기능이 잇는거 막 넣어도 되던 상황도 잘 맞물려 있었기 때문에 패치나 이런 대응이 바로바로 이루어질 수 있었고, 요즘은 하나의 코드를 넣더라도 이제 좀 대응하는 단계이다보니 좀더 높은퀄리티의 코드를 넣으려고 고민 하고 있지요 ㅎㅎ