다른 서브 도메인간 CSRF문제... 정보
다른 서브 도메인간 CSRF문제...본문
현재
그누보드의 웹경로는
http://www.abc.net/bbs/ 이고,
관리자 페이지의 웹경로는
http://admin.abc.net/ 으로 변경한 상태입니다.
물론 그에 따른 그누보드 소스도 다 수정했습니다.
근데.. 그러고 나니 그누보드의 기본환경설정의 CSRF의 이미지가 뜨질 않네요..
kcaptcha.js 파일도 http://www.abc.net/js/ 폴더안에 잘 존재하고요..
font이미지 파일도 다 잘 있고, kcaptcha* 파일도 http://www.abc.net/bbs 파일에 있습니다.
관리자 페이지의 config_form.php 파일에서도 http://www.abc.net/js/kcaptcha.js 파일을 잘 읽어드립니다.
js 파일 내용을 보면..
-------------------------------
if (typeof(KCAPTCHA_JS) == 'undefined') // 한번만 실행
{
if (typeof g4_path == 'undefined')
alert('g4_path 변수가 선언되지 않았습니다. js/kcaptcha.js');
var KCAPTCHA_JS = true;
var md5_norobot_key = '';
function imageClick() {
var url = g4_path+"/"+g4_bbs+"/kcaptcha_session.php"; //이부분의 경로값도 확인결과 이상없었습니다.
var para = "";
var myAjax = new Ajax.Request(
url,
{
method: 'post',
asynchronous: true,
parameters: para,
onComplete: imageClickResult
});
}
function imageClickResult(req) {
var result = req.responseText;
var img = document.createElement("IMG");
img.setAttribute("src", g4_path+"/"+g4_bbs+"/kcaptcha_image.php?t=" + (new Date).getTime());
document.getElementById('kcaptcha_image').src = img.getAttribute('src');
md5_norobot_key = result;
}
Event.observe(window, "load", imageClick);
}
-------------------------------
경로는 다 문제없는데.. imageClick function의
var myAjax = new Ajax.Request( ... 이부분에서 멈추고 진행이 안되버립니다.
alert로 디버깅 해본결과..... 저 이후에는 어느 코드도 실행이 안되더군요..
원래대로면.. Ajax를 이용해 url값으로 Request하고, 설정해둔 onComplete 이벤트를 통해 완료되면 imageClickResult가 실행되어야 할텐데...
Ajax로는 타 서브 도메인으로의 Request가 안되는건가 생각해봤지만, 생각을 해봐도 해결책은 모르겠습니다 ㅠㅠ..
도와주세요 ㅠㅠ
댓글 전체
CSRF 사용이라면
kcaptcha 관련 파일을 admin.ab.net쪽으로 경로를 고려하여 복사해 주세요.