2014-12-17 5 views
0

클라이언트에 응답을 보내기 전에 XSS ( ) 을 사용하지 못하도록 HTML 콘텐츠에서 HTML 및 자바 스크립트 인코딩을 수행하는 경우. 자바 스크립트에서이 HTML 및 자바 스크립트로 인코딩 된 데이터를 처리하는 방법은 무엇입니까?자바 스크립트에서 ESAPI를 사용하여 HTML 및 자바 스크립트 인코딩 된 데이터 처리

element.innerHTML에서 서버 출력을 사용하기 전에 데이터를 표준화해야합니까?

예컨대,

var data = $ESAPI.encoder().canonicalize(serverOP); 

element.innerHTML=data; 

하지만 혼합 또는 복수의 부호화 데이터를 canonicalising 것이 던 것이다 예외 (침입 예외).

+0

인수로받는 데이터에 대해 수행 할 javascript 함수는 무엇입니까? 이와 같은 질문은보다 구체적이어야합니다. – avgvstvs

답변

-1

이 경우 서버는 먼저 HTML을 중화 한 다음 THAT 데이터를 중립화하여 javascript 함수에 전달합니다.

타겟팅하는 자바 스크립트 기능이 HTML을 처리해야합니까?

당신이 HTML을 위해 인코딩 한 후 자바 스크립트를 인코딩 할 경우 다음 ESAPI.encoder().decodeForJavascript(payload)신뢰할 수없는 소스에서 들어오는 데이터를 처리하는 데 사용하기위한 것입니다 ESAPI.encoder().decodeForHtml(payload)

정규화 다음에 전화를해야하고,하지 원 스톱 디코딩 기능.

또한 자바 스크립트 기능이이 데이터의 유일한 진입 점인 경우 html로 이스케이프하지 않아도되고 자바 스크립트에서 이스케이프 처리하면 안됩니다. "innerHTML"이 의도했음을 나타 내기 때문에 이것을 말합니다. 브라우저에서 보내려는 것을 렌더링하기 때문에 불필요한 디코딩 단계를 추가하여 여기에서 추가 작업을 수행 할 수 있습니다. 서버가 자바 스크립트에 전달하기위한 것 탈출 데이터를 전달하는 경우, 당신이 그것을 사용하기 전에를 디코딩 할 수 없습니다 :


나는 추가 싶었다.

+1

나는 항상 downvotes를 얻지는 않는다. 그러나 내가 할 때, 나는 이유를 알고 싶다? – avgvstvs