클라이언트 스크립트가 서버의 일부 HTML을 페이지 내 팝업 (섀도 상자 등)으로 가져옵니다.<script> 태그가없는 JavaScript 코드 삽입
이것이 어쩌면 jQuery의 .html()
을 통해 이루어지고있는 것으로 생각됩니다.
길고도 짧은 이야기, 다음과 같은 오류가 발생 :
<script type="text/javascript"> myFunc(); </script>
불행하게도, 내가 클라이언트 측 코드를 수정할 수 없습니다 (그래서 나는 통과하고 다른 채널을 통해 자바 스크립트 코드를 실행할 수 없습니다). 나는이 작업을 얻었다
한 가지 방법은 HTML의 일부로서 다음을 반환하는 것입니다 :
<img src="." onerror=" myFunc(); "/>
돌이켜 보면, 나는 올바른 이미지 URL onload
을 사용할 수도 있지만, 두 이벤트 모두 작동하는지, 내가 ' d는 잘못된 경로를 사용하여 브라우저가 즉시 호출을 유발하도록합니다 (그리고 적은 HTTP/캐시 조회).
지금까지 설정에 관해서는, 나는 그것에 관한 당신의 의견을 듣고 싶습니다. 아마도 더 나은 해결책 일 것입니다.
편집 : 데이터가 test.php
에 의해 반환
jQuery.get('test.php',function(data){
jQuery('#popup').html(data);
});
이입니다 :
의이를 가정 해 봅시다 내가 엉망이하지 수있는 클라이언트 코드
Hello!
<script type=text/javascript> myFunc(); </script>
그리고 다음은 내 제안 된 솔루션입니다.
Hello!
<img src="." onerror=" myFunc(); "/>
페이지가 AJAX를 통해 HTML에서 당겨지면 꽤 일종의 이벤트를 통해 JS를 트리거해야합니다. 너의 유일한 단점은 그것이 여분의 서버 핑이라는 것이다. –
잠재적으로 XSS 공격을하는 방법을 기본적으로 묻는 것을 알고 계십니까? – BalusC
@BalusC - 동일한 도메인에서 실행되는 경우 XSS가되는 이유는 무엇입니까? JS 블록을 HTML 블록에서 실행하기 만하면됩니다. – Christian