포럼

펑....

2013.12.01 19:26

Canto

서브도메인이나 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 에도 이슈로 올려놓긴 했지만 여기서 공개 토론(?) 을 하면 더 좋은 방법이 나오지 않을까 해서 올려봅니다.


글쓴이 제목 최종 글
Canto 서버쪽 관련 이야기를 해봐요~! [7] 2013.12.09 by Canto
컴토피아 기가비트를 넣는 과정에 대해 자세히 적어보았습니다 [18] 2013.12.09 by 컴토피아
아싸로또1등맞고싶어 레이아웃 div css {height:100%} 값을 줬는데도 file  
nado0124 최신 코어하고 1.5하고 스팸차단 능력이 차이가 많이 나나요? [2] 2013.12.08 by 푸시아
銀童 요즘 XE 분위기가 참 좋네요. [9] 2020.03.14 by BNU
Lansi 손이 미끄러졌네요 file  
도라미 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] file 2014.07.16 by Canto
Lansi CDN 서비스가 종료된다는데  
Lansi Github 위키 작성 해도 될까요?  
라돌체 자바스크립트로 추천수를 올릴 수 있을까요? [1] 2013.12.06 by Lansi
카메론 새로 업데이트되는 XE1.7.4 설치 전에 꼭 실행해 보세요~^^ [3] file 2013.12.06 by Lansi
gayeon 자료 공유 2 :: 팝업 애드온(다이나믹 팝업) [15] file 2013.12.06 by socialskyo
Ju-rie XE 파일 다운로드 버그 발견했습니다.... [3] 2013.12.06 by explode
jahong 공홈 로그인이 풀립니다. [4] 2013.12.06 by explode