У меня есть функция javascript в том же файле 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;
}
Так я думал, чтобы закодировать ссылку veriable с помощью encodeURIComponent() или encodeURI(), но мне нужно знать, если я, как показано ниже, то это будет в состоянии предотвратить 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 , состояние = да, строка меню = нет, скроллбары = да, изменяемый = да, alwaysRaised = да); –