관리자만 '토큰 정보가 올바르지 않습니다.' 라는 오류 메시지ㅠ

관리자만 '토큰 정보가 올바르지 않습니다.' 라는 오류 메시지ㅠ

QA

관리자만 '토큰 정보가 올바르지 않습니다.' 라는 오류 메시지ㅠ

그누보드5(영카트) 버전

5.4.20

사용 PHP 버전

PHP Version 7.3.1p1

본문

안녕하세요

 

갑자기 잘 되던 것이 무언가 잘못 수정되어 그런것인지~ ? 모르겠지만 아래와 같은 오류가 발생합니다.ㅠ

 

* 오류 상황

 - 일반 사용자들은 게시판 등록이 잘 되는 상황

 - 관리자 ID 만 아래 오류가 발생됩니다. 

 

* 확인한 내용

 - 관리자 페이지에서 조차 토큰 값이 확인이 안됨, 오류 1은 정확히 어디서 발생하는 메시지도 확인 불가

 - 관리자 ID 로 처리하면, 토큰값이 안들어 오는 상황 $_REQUEST 값이 없음(그림 2 참조)

 - 일반 게시판에 일반 회원과 관리자 의 CSS/JS 가 다른 상황으로 판단됨
   (무엇이 다른지~? 정확히 모르겠음)

 

우선, 정확히 무엇이 잘못되었는지? 모르겠어서 어디를 확인해야할지도 모르겠습니다.  

혹시 경험해 보신 분들 계시면 고견 한번 부탁드립니다. 

 

미리 감사합니다.

 

[오류 1 - 관리자 페이지 및 일반 게시물 처리 시에도 발생됨]

3389570919_1759110879.0238.png

 

[오류 2 - 일반 게시판에 글쓰기 및 댓글 달기 할 때 발생]

3389570919_1759110888.0898.png

이 질문에 댓글 쓰기 :

답변 4

뭔가 스크립트의 오류로 토큰오류가 발생되는듯 하니 크롬브라우저에서 F12 개발자모드로 확인해 보셔야 할듯 합니다.

토큰 정보가 올바르지 않다는것은 세션값이 서로 달라서 그런겁니다.

입력시 생성되는 토큰과 처리 토큰값이 일치해야지만 이후 처리가 가능한부분입니다.

 

이는 보완적인 이슈때문에 서로간 일치 되었을떄만 처리 하도록 설계 된부분이오니.

이부분만 확인해서 처리하시면 쉽게 처리가 가능합니다.

 

캐시 또는 세션 쿠키 도메인 불일치입니다.

즉, 토큰 히든필드가 빠졌거나, 제거, 미전송 상태입니다.

 

없으면 “올바른 방법으로 이용해 주십시오.”,

불일치면 “토큰 정보가 올바르지 않습니다.” ~~

 

'캐시 무력화', '쿠키 도메인 통일'로 해결됩니다.

그리고 가능하면 사용 도메인은 일원화하시길~

 

※ 방안 ; (nginx 기준)

//= 폼 처리 경로 캐시 막기 (글쓰기/댓글/로그인/관리 등 토큰 쓰는 경로)

location ~ ^/(login|logout|register|signin|member(_confirm|_leave)?|password(_.*)?|bbs/(write|comment)_|bbs/board\.php|gate/) {
  add_header Cache-Control "no-store, no-cache, must-revalidate, max-age=0" always;
  add_header Pragma "no-cache" always;
  expires off;
}

 

//= PHP 처리 블록에도 ~

location ~ \.php$ {
  add_header Cache-Control "no-store, no-cache, must-revalidate, max-age=0" always;
  add_header Pragma "no-cache" always;
  expires off;

  include fastcgi_params;
  fastcgi_pass unix:/run/php-fpm/php-XXXX.sock;
  fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

  # HTTPS만 사용한다면
  fastcgi_param PHP_VALUE "session.cookie_domain=.fi-lab.com\nsession.cookie_secure=1\nsession.cookie_httponly=1\nsession.use_strict_mode=1";
}

//※※※ ; """/run/php-fpm/php-XXXX.sock""", 이는 해당 서버의 "소켓경로"입니다. ※※※


※설정 확인은 ~~
개도구(F12), Network > 'Doc' 열고

관리자 계정으로 글을 쓰며, 고침(F5)해보세요 > write.php. . . 나타남.
write.php. . . 이 Name을 클릭하여, 아래와 같은 설정한 내역이 나타나면 >>> Ok


headers 목록에 아래 내역이 포함된다네요~~ 옛기억으로 열심히 찾아봄 ~~

Cache-Control: no-store, no-cache, must-revalidate

Set-Cookie: PHPSESSID=…; domain=.glitter.kr; secure; HttpOnly

답변을 작성하시기 전에 로그인 해주세요.
전체 18,388 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT