2010-03-30 5 views
1

나는 그렇게처럼에 정의 된 텍스트 영역이있는 웹 페이지가 있습니다. 예를 들어, 나는 다음과 같은 문자열로 테스트되었습니다자바 스크립트와 JQuery와 인코딩 HTML

Just testin' using single and double "quotes". I'm hoping the end of this task is comin'. 

또한, 사용자가 나는 것을 방지하기 위해 선호하는 HTML 코드를 입력 할 수 있습니다. 그럼에도 불구하고이 텍스트 영역의 내용을 웹 서비스로 전달하고 있습니다. JavaScript를 보내기 전에 텍스트 영역의 내용을 JavaScript로 인코딩해야합니다. 현재, 나는 다음과 같은 노력하고있어 : 내가 대신

Just testin' using single and double "quotes". I'm hoping the end of this task is comin'. 

을 표시 할 내용을 기대하고 있었다

var contents $('<div/>').text($("#myTextArea").val()).html(); 
alert(contents); 

, 원래 문자열이 출력됩니다. 이중 따옴표뿐 아니라 따옴표도 고려해야 할 다양한 엔티티가 있습니다. 이 때문에, 그것을 전달하기 전에 HTML을 인코딩하는 방법이 있다고 가정하고있었습니다. 누군가 이걸 어떻게 할 수 있는지 말해 줄 수 있습니까?

+1

자바 스크립트에서 HTML 인코딩을 잊어 버리십시오. 서버 측에서 수행하십시오. 클라이언트를 믿을 수 없으므로 클라이언트에 따라 XSS라는 거대한 구멍 하나가 있습니다. – Quentin

+0

http://underscorejs.org/#escape의 _.escape 사용 – rjdmello

답변

0

사용하여 주셔서 감사합니다 :

var contents = $("<div/>").text($("#myTextArea").val()).text(); 
alert(contents); 

당신은 대신 HTML의 내용의 텍스트 내용을 표시합니다.

+0

여기에 누락 된 것이 없습니까? – Nayan

+0

@Rafiqunnabi 저기 있었지만 지금은 고쳐 놨어. 감사. :-) – Prutswonder

+0

= 연산자가 누락되었습니다. – Nayan

3

웹 서비스로 보내는 경우, 아마도 URL 인코딩을 사용하게 될 것입니다 (예 : POST의 일부로 Ajax 양식 제출). 그것은 당신의 끝에 필요한 탈출을 처리 할 것입니다. 상대방의 서비스는 입력 문자열을 올바르게 해석합니다. 서비스가 HTML 태그를 수락하지 않으면 필요한 엔티티 인코딩 (또는 원하는 다른 종류의 인코딩)을 수행하는 것은 서비스 작업입니다.

서비스가 이에 대한 책임을지지 않으면 클라이언트의 오류 및 악의적 인 의도가있는 사람들의 공격에 노출됩니다. 그래서 그것은 정말로 다른 쪽의 문제입니다.

관련 문제