테스트 사이트 - 개발 중인 베타 버전입니다

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

abaplab 1개월 전 조회 110

안녕하세요

 

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

 

* 오류 상황

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

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

 

* 확인한 내용

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

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

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

 

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

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

 

미리 감사합니다.

 

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

http://sir.kr/data/editor/2509/3389570919_1759110879.0238.png" width="457" />

 

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

http://sir.kr/data/editor/2509/3389570919_1759110888.0898.png" width="456" />

댓글을 작성하려면 로그인이 필요합니다.

답변 4개

아주 간단하게는

define('G5_DOMAIN', '');
define('G5_HTTPS_DOMAIN', '');

여기에 도메인을 넣으시면 됩니다.

그래도 안되면 세션이나 쿠키 또는 SSL 문제입니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

glitter0gim
1개월 전

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

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

 

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

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

 

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

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

 

※ 방안 ; (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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

a
abaplab
1개월 전
너무 감사합니다.
보내주신 정보를 토대로 새롭게 도전해 보겠습니다.
감사합니다.
g
glitter0gim
1개월 전
(●'◡'●)
~~ config.php 등에
반드시 "세션 쿠키" 설정도 해야 합니다.

댓글을 작성하려면 로그인이 필요합니다.

복스리
1개월 전

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

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

 

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

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

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

a
abaplab
1개월 전
감사합니다.~
저도 그 부분이 의심되는데, 이부분에 대한 실력이 부족해서..ㅠ
좀 더 확인해 보도록 하겠습니다.
다시한번 감사합니다.
복스리
1개월 전
네 충분히 그럴수 있습니다. 해보시다 어려우시면 쪽지주세요 ^^

댓글을 작성하려면 로그인이 필요합니다.

플라이
1개월 전

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

a
abaplab
1개월 전
저도 제일 의심하는 부분입니다.
(제가 무언가 수정을 했는데, 그로 인해 영향을 주는 듯 합니다.ㅠ )
다시한번 찾아보도록 하겠습니다.
좋은 의견 감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인