아래 링크에서 전달 된 매개 변수를 기반으로 새 창을 여는 동일한 JSP 파일에서 자바 스크립트 기능을 사용하고 있습니다. XSS 공격을 막기 위해 인코딩해야한다는 말을 들었습니다. 어떤 인코딩을 사용해야합니까?
<script language="JavaScript">function openDocWindow(report,index,reportType) {
link = '/ocs/jsp/single_report_frameset.jsp?
report_id='+index+'&id=13740995910316prfXwysgrSGk2Strm7pvxC'+
index+'&startCount=0'+'&enclosure_id='+index;
parent.window.open(link,'detail','width=640,height=480,toolbar=no,
location=no,directories=no,status=yes,menubar=no,scrollbars=
yes,resizable=yes,alwaysRaised=yes');
return;
}
그래서 난에 encodeURIComponent() 또는에 encodeURI()를 사용하여 veriable 인코딩 링크로 생각하지만 난 그것을 XSS 공격을 방지 할 수있을 것입니다 아래에 다음과 같이 할 경우 알 필요가?
parent.window.open(encodeURIComponent(link),'detail','width=640,height=480,toolbar=no,
location=no,directories=no,status=yes,menubar=no,scrollbars=
yes,resizable=yes,alwaysRaised=yes');
return;
도움 주셔서 감사합니다.
도움 주셔서 감사합니다. 그러면 XSS를 어떻게 막을 수 있습니까? 나는 ESAPI.encoder(). encodeForURL (String str)을 사용하려고 생각했지만 링크 변수를 ESAPI 메소드의 문자열 인수로 전달할 수 없습니다. 그것은 링크가 해결 될 수 없다고 말합니다. 나는 ESAPI parent.window.open (ESAPI.encoder(). encodeForURL (link.toString()), 'detail', 'width = 640, height = 480, toolbar = no, location = no, directories = no를 사용하여 이것을 시도했다. , status = yes, menubar = no, scrollbars = yes, resizable = yes, alwaysRaised = yes '); –