2016-10-03 7 views
-5

시스템에 등록하려면 'submit'버튼을 눌러서 등록 양식을 작성해야합니다. 스크립트를 텍스트 상자에 삽입하려고 시도했지만 텍스트 상자는 보호됩니다. 이제는 레이블에 스크립트를 삽입하여 사람이 페이지를 열 때마다 레이블에 삽입 된 스크립트가 실행됩니다.HTML 레이블에 JavaScript를 삽입하는 방법은 무엇입니까?

답변

0

HTML 태그 또는 페이지에 자바 스크립트를 삽입하려는 경우 웹 사이트/웹 페이지/코드가 보안상의 이유로 HTML 삽입에 취약하다는 것을 의미합니다. 당신이 텍스트 상자에 삽입 할 수 가능한 코드는 위의 명령이 무엇을

1) ><script>alert(1)</script><!--
2) '><script>alert(1)</script><!--
3) "><script>alert(1)</script><!--

들이 열려 있고 경우에 어떤 '또는 "는 주입 가까이 있습니다 자바 스크립트 코드를 추가하고 나머지 코드를 주석 처리합니다. 자바 스크립트가 실행되고 그 이후의 다른 모든 콘텐츠는 실행되지 않습니다.

HTML 삽입에 대한 다른 고급 기술
http://target.com/?user=<img src='aaa' onerror=alert(1)>

위의 명령은 이름이 'aaa'인 이미지를 검색하고 발견되지 않으면 onerror javascript 함수를 삽입하거나 실행하여 HTML 삽입을 발생시킵니다.

이것은 전혀 안전하지 않습니다. 이런 종류의 공격으로부터 자신을 보호하는 방법은 무엇입니까?

<하고 자바 스크립트를 실행하기위한 책임이 있습니다 즉 코드에서 스크립트의 실행에 대한 책임이 있습니다 >에에서 <> 문자 인코딩.
1) code = code.replace(/</g, "&lt;").replace(/>/g, "&gt;");
2) ParseHTML이라는 jquery 함수를 사용할 수 있습니다.
3) htmlspecialchars 기능을 사용하여 이러한 유형의 공격으로부터 벗어날 수도 있습니다.

희망이 도움이됩니다.