아래 편집기에서는 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('span'); ele.appendChild( document.createTextNode( str ) ); return ele.innerHTML; } //解析 function htmlDecode ( str ) { var ele = document.createElement('span'); ele.innerHTML = str; return ele.textContent; }
2. jquery를 통해 실현
function htmlEncodeJQ ( str ) { return $('<span/>').text( str ).html(); } function htmlDecodeJQ ( str ) { return $('<span/>').html( str ).text(); }
3.
var msg=htmlEncodeJQ('<script>alert('test');</script>'); $('body').append(msg);
추천합니다 더 나은 호환성 때문에 jquery를 사용하여 구현하십시오.
위 내용은 HTML 이스케이프 및 자바스크립트 삽입 공격을 방지하는 방법에 대한 간략한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!