1

주제: common.js의 writeCode 함수 버그

common.js 작성:

function writeCode(str, id) {
        str = str.replace('src="', 'src="http://' + document.domain);
    if(id == undefined) document.write(str);
    else document.getElementById(id).innerHTML = str;
}

이 경우 src="http://blah.com" 이라고 되어있을 경우 http://http://blah.com이 되어버립니다.

str = str.replace('src="', 'src="http://' + document.domain);
를 아래로 변경해야될거라 생각합니다.
if(!str.match(/src="http:\/\//i)) str = str.replace(/src="/i, 'src="http://' + document.domain);

뭐 쌍따옴표말고 홑따옴표가 있을 수도 있고 따옴표가 아예 없을 수도 있기는 하겠지만.. 이건 패스(...)

2

답글: common.js의 writeCode 함수 버그

정확히 문제가 되는 부분을 찾아 주세요. 이것은 객체가 삽입될 때 크로스사이트를 막기위해 하는 짓으로 이 루틴을 부르는 모든 곳에서는 http://를 가져서는 안됩니다.

일단 r2498 에서 약간 손을 봤습니다만 이 부분으로 들어오는 경우는 현재로서는 찾지 못했습니다. (일종의 데드 코드)

혹시나 http가 여러번 붙는 케이스가 있다면 찾아주세요.

3

답글: common.js의 writeCode 함수 버그

http://forum.tattertools.com/ko/viewtop … 769#p11769

이 경우를 말합니다. smile

4

답글: common.js의 writeCode 함수 버그

http://forum.tattertools.com/ko/viewtopic.php?id=342

여기부터 시작된 문제군요.

땜빵하지 말고 제대로 머리싸매고 고쳐봐야 겠네요. 그냥 오브젝트 임베딩 하면 배쨀까요?
avoidFlashBorder 함수가 문제입니다.