우리는 HP fortify Audit Workbench 3.80을 사용하여 응용 프로그램의 취약점을 평가합니다.ESAPI를 사용하여 JavaScript DOM XSS를 해결하는 방법은 무엇입니까?
function doAjaxCall(param1, param2, div) {
var options = {
url : url,
params : {
param1 : param1,
param2 : param2
},
method: 'GET',
success: function(response, options) {
processResponse(response, div);
},
failure: function(response, options) {
doSomethingElse();
}
};
Ext.Ajax.request(options);
}
function processResponse(response, div) {
// SECURITY ISSUE HERE
document.getElementById(div).innerHTML = '<br>' +
'An error occurred with status code '
+ response.status +
'<br><br>';
}
response
는 AJAX 요청에서 반환 된 반응이다 : 마크에게 중요한로서 다음의 ExtJS 자바 스크립트 코드 (이하 "최악") DOM XSS 취약점을 강화.
포티 말한다 :
방법 "processResponse"은 악성 코드를 실행하는 브라우저가 발생할 수 라인 (100)상의 웹 브라우저에 확인되지 않은 데이터를 전송한다.
나는이 문제를 이해하고 왜 그 문제입니까? 내가 모르는 것은 ESAPI으로 입력을 어떻게 위생 처리하는지입니다. 우리는 자바 코드의 문제에 ESAPI를 성공적으로 사용하고 있지만이 특정 문제는 자바 스크립트에서 해결할 수 없습니다.
이 JavaScript ESAPI 라이브러리, ESAPI4JS을 찾았지만 매우 높은 보안 환경에서 작업하며이 라이브러리에 액세스 할 수 없습니다.
어떻게 ESAPI를 사용하여 응답을 살균 할 수 있습니까? 사용자 요청에 따라
는편집
추가 된 전체 아약스 요청 코드.
@GeorgeStocker processResponse가 클라이언트 측에 있습니다. 그것은 질문에 포함 된 코드 줄을 포함하는 자바 스크립트 함수입니다. – Josh
@GeorgeStocker AJAX 성공 콜백을위한 래퍼 함수입니다. – Josh
우리가보고있는 것을 더 명확하게 보여주기 위해 코드 자체에 그 코드를 포함 할 수 있습니다. –