HTML 이스케이프 및 자바스크립트 삽입 공격을 방지하는 방법에 대한 간략한 설명

不言
풀어 주다: 2018-06-05 14:32:31
원래의
2221명이 탐색했습니다.

아래 편집기에서는 HTML 이스케이프 및 JavaScript 삽입 공격을 방지하는 방법에 대해 간략하게 설명합니다. 에디터가 꽤 좋다고 생각해서 지금 공유해서 참고용으로 올려보겠습니다. 편집기를 따라 살펴보겠습니다

때때로 페이지에 입력 상자가 있을 수 있으며, 사용자가 콘텐츠를 입력하면 웹 채팅 애플리케이션과 유사하게 페이지에 표시됩니다. 사용자가 js 스크립트를 입력하는 경우 비율은 <script>alert('test');</script>이며 대화 상자가 페이지에 팝업되거나 입력 스크립트에 js를 변경하는 코드가 포함된 경우 페이지의 변수에 따라 프로그램이 중단되거나 특정 확인을 건너뛰는 목적을 달성하게 됩니다. 그렇다면 이러한 종류의 악의적인 js 스크립트 공격을 방지하는 방법은 무엇입니까? 이 문제는 html 이스케이프를 통해 해결할 수 있습니다.

1: HTML 이스케이프란 무엇입니까?

html 이스케이프는 특수 문자나 html 태그를 해당 문자로 변환하는 것입니다. 예: <는 <>로 이스케이프되거나 "<script>alert('test');</script>"로 이스케이프됩니다. ('test');" 다시 표시되면 페이지는 <를 <, >로 >로 구문 분석하여 사용자의 실제 입력을 복원합니다. 최종적으로 페이지에 표시되는 내용은 여전히 ​​"<입니다. ;script>alert('test');"는 js 삽입 공격을 방지하고 실제로 사용자 입력을 표시합니다.

2: 탈출하는 방법?

1. js를 통해 실현

//转义 元素的innerHTML内容即为转义后的字符
function htmlEncode ( str ) {
 var ele = document.createElement(&#39;span&#39;);
 ele.appendChild( document.createTextNode( str ) );
 return ele.innerHTML;
}

//解析 
function htmlDecode ( str ) {
 var ele = document.createElement(&#39;span&#39;);
 ele.innerHTML = str;
 return ele.textContent;
}
로그인 후 복사

2. jquery를 통해 실현

function htmlEncodeJQ ( str ) {
  return $(&#39;<span/>&#39;).text( str ).html();
}

function htmlDecodeJQ ( str ) {
  return $(&#39;<span/>&#39;).html( str ).text();
}
로그인 후 복사

3.

var msg=htmlEncodeJQ(&#39;<script>alert(&#39;test&#39;);</script>&#39;);

$(&#39;body&#39;).append(msg);
로그인 후 복사

추천합니다 더 나은 호환성 때문에 jquery를 사용하여 구현하십시오.

위 내용은 HTML 이스케이프 및 자바스크립트 삽입 공격을 방지하는 방법에 대한 간략한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!