2017-03-23 7 views
0

내가 개발 한 내부 웹 응용 프로그램은 곧 펜으로 테스트 될 것입니다. Windows 인증을 사용합니다.XSS를 방지하기 위해 사용자 입력을 살균

꽤 많은 AJAX가 있습니다. 최근 크로스 사이트 스크립팅에 대해 읽었습니다. https://en.wikipedia.org/wiki/Cross-site_scripting

이 기사에서는 사용자 입력 삭제에 대해 이야기합니다. JavaScript/Jquery에서이 작업을 수행 할 수있는 함수가 있습니까?

예를 들어 사용자가 <script type='text/javascript'>alert('xss');</script>을 입력하면 어떻게 위생 처리 할 수 ​​있습니까? SQL 주입 공격을 막기 위해 .NET에 내장 된 명령 매개 변수를 사용합니다.

내가 부적절한 태그를 직접 대체 할 수는 있지만, 먼저이 작업을 수행하는 방법이 기본 제공되지 않았는지 확인하고 싶었습니다. 나는 인터넷 검색을하면서 시간을 보냈지 만, 나의 구체적인 질문에 대한 답을 찾지 못했다.

+0

OWASP의 권장 사항을 확인하십시오. https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet –

답변

0

항상 HTML이 아닌 텍스트로 사용자 입력을 처리하십시오.

그래서 당신이 사업부의 사용자 입력을 보여주고 싶은 말은, 당신이 할 것 :

$("#mydiv").text(userInput); 

이 자동으로 '소독'것입니다 입력 (정말 아래를 참조하지 않습니다), 당신이 ' 입력 HTML이 HTML로 삽입되는 것이 아니라 텍스트로 표시됩니다. 물론 .html()을 사용했다면 그대로 덤프됩니다.

실제로 일어나고있는 것은 브라우저가 HTML이 아닌 텍스트로 처리되도록 명시 적으로 지시하므로 (항상 jquery) 브라우저가 먼저 구문 분석을 시도하지 않으므로 항상 안전한 옵션입니다 파싱 ​​할 무언가를 위생적으로하려는 것과 비교하면.

관련 문제