익스플로어7에서 ShellExecute()로 웹 페이지 호출이 안되는 이유
제가 만들었던 ActiveX가 어느 날부터 실행이 안된다는 항의를 받게 되었습니다.
그래서 오늘 디버깅하고 테스트한 결과 좀 황당한 사실을 알게 되었습니다
IE 7에서 웹 url을 실행할 때 실행이 안된다는 것입니다.
ShellExecute(0, "open", " http://www.Borland.com", "", "", SW_SHOWNORMAL); // C++
볼랜드 포럼 어느 페이지에 있는 소스입니다.
안될 이유는 없지요. shellapi.h까지 넣었는데도 불구하고 안됩니다.
더구나 WinExec()도 실행이 안되는 사태를 맞이하여 문제 풀이에 들어갔습니다.
그러고 보니 제 개발 환경이 우연치 않게 익스플로어 7이 인스톨 되어 있던 것이였지요...
다른 pc와 테스트를 교차로 한 결과 IE7에서는 피싱 방지를 위해서 웹페이지 url 호출 및 웹 경로로 된 파일의 다운로드를 못하도록 막아 놓았더군요.
그런데!!!
ActiveX에서 html 파일을 로컬 드라이브에서 생성하여 그 파일을 생성하니 생성이 되더군요
test.htm을 만들어서 실행했습니다.
웃긴 이야기지만 로컬 경로에 있는 html 파일을 웹 브라우저로 실행이 가능하고 url로 되어 있는 건 실행 방지가 되어 있다는 것이지요..
ActiveX에서 로컬의 html 파일에 피싱 페이지를 넣어서 실행이라도 시킨다면 얼마나 우숩겠습니까...
비스타에서도 역시 테스트해보니 좀 강화 되었을 뿐이지, 각종 파일 실행이나 그런 점이 완전하게 막히지는 않았더군요.
일관성 있게 보안 정책이 정해지지 않아서 솔직히 MS에 많이 실망했습니다.
testcode~
|