2010-06-22 3 views
6

현대의 모든 브라우저에서 가능할지 모르지만 javascript/jquery를 사용하여 모든 HTML 태그, CSS 서식, Word doc 형식 코드 등을 제거 할 수 있는지는 확실하지 않습니다. 페이지의 입력 영역 (필자의 경우 "contenteditable"으로 설정된 요소)에 붙여 넣을 때 텍스트 문자열에서 항상 순수한 일반 텍스트로만 들어갑니다.Javascript/JQuery를 통해 텍스트 문자열에서 html/formatting/ect를 붙여 넣을 때 제거 하시겠습니까?

물론 생각하기에 앞서 문제의 세척/소독 부분은 내가 처음에 대해 듣고 나도 어떻게 해야할지 모르겠습니다있는 paste 이벤트에서 텍스트를 캡처 신뢰할 수있는 방법이 필요합니다.

사전에 감사! 아마

답변

2

TinyMCE와 CKEditor의 최신 버전이 사용하는 해킹을 사용하는 것이 가능합니다. 나는 this answer에 설명했다.

0

이것은 가능하지만, 클라이언트 측 코드가 변경 될 수 있기 때문에 보안 조치로는 부적절하다고 말할 수 있습니다. 자바 스크립트가 해제 된 경우를 어떻게 수용 할 것인가? 아니면 방화범을 사용하는 중에 누군가가 귀하의 페이지에 게시하고 있습니까? 디버거 및 유효성 검사 건너 뛰기?

사용자에게보다 빠른 피드백을 제공하기 위해 클라이언트 측을 사용하지만 그 것에 의존하지 마십시오.

실제 작업을 수행하려면 서버 측 유효성 검사 및 위생 처리를 사용하십시오.

+0

변조 된 코드 문제는 알려진 신뢰할 수있는 사용자가 사용하는 백엔드 관리 시스템 전용이며 공개적으로 액세스 할 수 없으므로이 경우에는 별다른 문제가 아닙니다. 또한 시스템에서 자바 스크립트를 활성화해야 해당 문제가 해결됩니다. 그리고 내가 서버 측에서하고 싶지 않은 이유는 내가 구현 한 입력 편집기가 사실 (굵은 체, 밑줄, 하이퍼 링크 등) 이후에 매우 기본적인 형식을 취할 수있게하기 때문입니다. 어떤 포맷팅은 허용하지만 다른 포맷은 허용하지 않습니다. –

+0

@Bill Dami - 회사가 응용 프로그램을 열거 나 회사 내부의 악의적 인 사용자가 악의적 인 행동을하기 전까지 신뢰할 수있는 사용자. – Oded

+0

사실,하지만이 애플리케이션은 일반 사용자에게 공개되지 않습니다. 그리고 시스템에 액세스 할 수있는 직원이 불량 일 경우 편집자에게 unsanitized 입력을 저장할 수 있다는 것이 우리의 걱정거리 중 가장 적습니다 .-D –

2

이미 TinyMCE에 있으니 배포 해 보시기 바랍니다. jQuery 패키지로도 제공되며 LGPL에서 배포되므로 상용 프로젝트에서 사용할 수 있습니다.

붙여 넣기 관련 기능은 http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/paste을 참조하십시오.

+0

TinyMCE 프로젝트가 오픈 소스이고 그 코드가이 기능을 추출 할만큼 충분히 휴대 가능하다면, 실제로 사용할 수 있을지 모르겠지만, 실제 편집기를 사용하는 한,이 입력 영역 웹 사이트 편집기의 일부로, 본질적으로 웹 사이트 템플릿의 레이아웃에 직접 편집 할 수 있으며 텍스트 편집기 유형 인터페이스가 아닌 내용 편집 가능 영역을 사용하여 편집 할 수 있습니다. –

+0

그래, 그 대답을 게시하여 의미 - 당신은 전체 프레임 워크를 사용하거나 그냥 사용자 정의 사용을위한 부분을 추출하고 조정할 수 있습니다. –