포럼
펑....
2013.12.01 19:26
서브도메인이나 m 도메인 사용시에
checCSRF 에서 Referer과 기본 주소를 프로토콜 포함해서 풀로 검색할려고 하기때문에..
false 값이 돌아오는 것 같습니다.
그래서 글이나 댓글 작성할 때 올바르지 않은 요청 입니다 (?) 였나? 하는 경고나 나오더군요..
기본주소에서 프로토콜을 빼고.. 호스트명만 가지고 비교를 하고.. 또 strstr 로 Referer과 비교하던걸
패턴 매칭을 통해서 비교하면 어떨 까 싶습니다.
일단 제가 생각한 것은
function checkCSRF() { if($_SERVER['REQUEST_METHOD'] != 'POST') { return FALSE; } $defaultUrl = Context::getDefaultUrl(); $referer = parse_url($_SERVER["HTTP_REFERER"]); $oModuleModel = getModel('module'); $siteModuleInfo = $oModuleModel->getDefaultMid(); if($siteModuleInfo->site_srl === 0) { if(!strstr(strtolower($defaultUrl), strtolower($referer['host']))) { return FALSE; } } else { $virtualSiteInfo = $oModuleModel->getSiteInfo($siteModuleInfo->site_srl); $virtualSiteUrl = parse_url($virtualSiteInfo->domain); if(strtolower($virtualSiteInfo->domain) != strtolower(Context::get('vid')) && !preg_match('/^([a-z]+\.)?'.$virtualSiteUrl['host'].'$/',$referer['host'])) { return FALSE; } } return TRUE; }
이런 식으로
$virtualSiteUrl = parse_url($virtualSiteInfo->domain);
도메인에서 호스트 부분만 빼 온 다음에
!preg_match('/^([a-z]+\.)?'.$virtualSiteUrl['host'].'$/',$referer['host'])
이렇게 패턴 매칭으로 서브도메인으로 접속해 있는 경우 걸리지 않게 해주는 것입니다.
물론 asdf.서브도메인.기본주소.asdf.kr 식이나 서브도메인.기본주소.asdf.kr 식으로 들어오면 false 가 되는 식으로요..
몇일 전부터 모바일 전용 주소를 사용하고 있었는데.. 모바일 주소로 접속하면 글쓰기와 댓글쓰기가 안된다고 하셔서....
뭐가 문제이지 하고 찾아봤더니 저기서 걸리더군요... (...)
일단 github 에도 이슈로 올려놓긴 했지만 여기서 공개 토론(?) 을 하면 더 좋은 방법이 나오지 않을까 해서 올려봅니다.
댓글 12
-
Canto
2013.12.01 19:34
-
도라미
2013.12.01 19:35
xe 기본 정책이 단일 도메인 아닌가요?확실하지 않으니 정정합니다.
-
Canto
2013.12.01 19:36
단일 도메인이 기본정책이였나요? 그러면 가상사이트라는 개념을 추가 시킬 필요가 없었을텐데요...?
-
Canto
2013.12.01 19:47
일단 저부분만 고치면 서브도메인으로 접속했을때 올바르지 않을 요청입니다?? 라면서 글쓰기와 댓글 쓰는게 불가능한 현상을 일단 피해지더라고요.
-
라르게덴
2013.12.01 20:36
멀티도메인 모듈로는 안되는건가요?
http://www.xpressengine.com/21854539
-
Canto
2013.12.01 20:49
사용 해봤는데 서브도메인에서 글작성시와 댓글 작성시에
if($siteModuleInfo->site_srl === 0)
{
if(!strstr(strtolower($defaultUrl), strtolower($referer['host'])))
{
return FALSE;
}
}
요기로 빠져서 FALSE 되더라고요..
-
라르게덴
2013.12.01 21:21
왜 === 죠?
사용하는 도메인 전부 멀티도메인에(서브도메인도) 설정해도 안되셨다는건가요?
-
Canto
2013.12.01 21:25
http://www.xpressengine.com/index.php?mid=tip&search_keyword=%EC%9E%98%EB%AA%BB%EB%90%9C+%EC%9A%94%EC%B2%AD&search_target=title&document_srl=21735389
제 사이트에서만 문제가 되는것인가는 잘모르겠는데 모바일에서 댓글과 글이 안써지더라고요...
-
라르게덴
2013.12.01 21:34
위 팁을 하지 말고 XE코어 기본에 멀티도메인 조합으로도 접근에 문제가 있다면 재현사이트랑 함께 저한테 쪽지주세요. 저는 해당 문제를 멀티도메인선에서 해결볼 수 있다고 생각합니다.
-
Canto
2013.12.01 21:26
이 방법은 보편적으로 적용할 수가 없겠네요..
서브도메인과 관련되서 생각해보니까.. 호스팅사 무료도메인 이용시 문제가 될 수 있다는 점을 BNU님께서 알려주셨습니다.
-
Canto
2013.12.01 22:09
이 이슈는 펑하겠습니다. @라르게덴님의 멀티도메인 조합으로 가능하네요.
제가 운영중인 사이트는 어디선가 꼬여서 그런가 보네요 ㅠ
기본 옵션으로 사용해봤을때 문제 없다는 것을 확인하였습니다. ㅠ
-
explode
2013.12.02 00:09
전 귀찮아서 저거 다 지우고 return TRUE;로 바꿨습니다.
글쓴이 | 제목 | 최종 글 |
---|---|---|
Canto | 서버쪽 관련 이야기를 해봐요~! [7] | 2013.12.09 by Canto |
컴토피아 | 기가비트를 넣는 과정에 대해 자세히 적어보았습니다 [18] | 2013.12.09 by 컴토피아 |
아싸로또1등맞고싶어 | 레이아웃 div css {height:100%} 값을 줬는데도 | |
nado0124 | 최신 코어하고 1.5하고 스팸차단 능력이 차이가 많이 나나요? [2] | 2013.12.08 by 푸시아 |
銀童 | 요즘 XE 분위기가 참 좋네요. [9] | 2020.03.14 by BNU |
Lansi | 손이 미끄러졌네요 | |
도라미 | XDT EX 배포본 모음 [2] | 2013.12.07 by 도라미 |
2donggalbi | 지금와서 다시 생각해보면 [2] | 2013.12.07 by 참치.k |
라돌체 | 보통 커뮤니티 제작 후 관리할 때 비용 얼마 정도 받나요? [12] | 2013.12.07 by 정도의길을걷기싫다 |
권태성 | XE Hub 개소식 사진이 올라왔네요 [5] | 2013.12.07 by 라미아스튜디오 |
treasurej | 공식홈페이지 디자인과 메인 노출 컨텐츠 [9] | 2020.03.14 by 벨몽이 |
Lansi | XE 업데이트 날은 [2] | 2013.12.06 by Lansi |
Canto | 심심해서 날씨정보 애드온을 하나 만들었습니다. [10] | 2014.07.16 by Canto |
Lansi | CDN 서비스가 종료된다는데 | |
Lansi | Github 위키 작성 해도 될까요? | |
라돌체 | 자바스크립트로 추천수를 올릴 수 있을까요? [1] | 2013.12.06 by Lansi |
카메론 | 새로 업데이트되는 XE1.7.4 설치 전에 꼭 실행해 보세요~^^ [3] | 2013.12.06 by Lansi |
gayeon | 자료 공유 2 :: 팝업 애드온(다이나믹 팝업) [15] | 2013.12.06 by socialskyo |
Ju-rie | XE 파일 다운로드 버그 발견했습니다.... [3] | 2013.12.06 by explode |
jahong | 공홈 로그인이 풀립니다. [4] | 2013.12.06 by explode |
지금 확인해 보니까
이렇게 숫자도 포함시켜줘야겠군요..