IE8의 엽기적인 행각... 교차 사이트 스크립팅 (XSS)

2009. 4. 14. 20:26프로그래밍/Web Standard

반응형
흠... 오늘 알아낸 IE8의 문제점이 있다.
오늘 작성할 포스팅은 하다 하다 별 것을 다 겪는다 싶은 일들중에 하나일 것이다.

자바스크립트를 이용해서 문자열을 전달할때 ( ) 괄호가 포함되어 있을 경우 교차 사이트 스크립팅을 막는다는 미명하에 ActiveX 설치시 뜨는 것과 같은 경고 문구를 보여준다.

요로코롬... ㅠㅠ


첨에는 이게 무슨 개 풀 뜯어먹는 소린가 했다.
아무리 봐도 뭔지 모르겠어서 다른 문자열을 던질때와 차이가 뭘까를 고민해보니... 범인은 괄호였다. ()
이걸 특정 자바스크립트 함수로 보는 것이다.
그래서 이 문자열을 보고 크로스 사이트 스크립팅으로 간주해버리는 것이다. 에이 무쉭한...

그래서 결국... 문자열을 던질때 character entity를 이용하여 치환해서 사용할 수 밖에 없었다. ㅠㅠ

즉... 다음과 같이...

someaction(1, "서울역(KTX)");

이런 함수 실행문을...

someaction(1, "서울역(KTX)");

이런식으로 말이다.

결과는... 경고문 없이 샤르륵 지나간다.
혹시라도 교차 사이트 스크립팅인지 뭔지 하는 문제를 보신 분들은 참고해보시기 바란다.

참고로 HTML에서 사용하는 Charater Entity에 대한 페이지를 살짝 링크 걸어둔다.

http://www.cookwood.com/html/extras/entities.html


반응형