0

<script> 태그와 Javascript 태그를 허용하지 않는 유효성 검사 코드를 넣은 텍스트 영역이 있지만 사용자는 <strong onmouseover=alert(2)>과 같은 설명을 입력 할 수 있습니다.자바 스크립트 삽입 필터링

누군가이 문자열 태그 위로 이동하면 JS 경고 상자가 나타납니다.

어떻게 이런 종류의 자바 스크립트 삽입을 중단 할 수 있습니까?

답변

0

html 정수기라는 도구가 많이 있습니다. 예를 들어 this을 시도 할 수 있습니다.

0

쉬운 대답은 replace(/</g,'&lt;');이지만, 물론 사용되는 어떤 HTML을 방지하는. 이것이 BBCode, Markdown 및 기타 언어가 존재하는 이유입니다. 임의 코드를 게시 할 수있는 권한을 사용자에게 부여하지 않고 서식 지정 기능을 제공합니다.

또한, 단지 당신은 제대로 허용 HTML을 소독해야합니다 패턴 /\bon[a-z]+=/i

0

의 물건을 검색합니다. 당신이 발견 한 것처럼 이것은 사소한 일입니다. (iframe 및 기타 여러 요소를 허용하지 않아야합니다.)

적절한 살균을 위해서는 허용 된 허용 목록 내에서 각 허용 된 허용 목록이 필요합니다. 분명히 다양한 onXyz 속성은 허용 목록에 포함되지 않습니다.

위생 처리 은 클라이언트 측을 우회 할 수 있기 때문에이 서버 측에서 발생해야합니다. 따라서 어떤 서버 기술을 사용하고 있는지 알지 못해도 어떤 것을 추천 할 수는 없습니다. 예를 들어 JSoup은 Java에서 잘 알려져 있지만 물론 Java를 사용하지 않는 경우에는 유용하지 않습니다. :-) .Net의 경우 HTML Agility Pack 또는 Microsoft Anti-XSS library이 있지만 매우 불완전한 목록 인입니다.

관련 문제