최근에 내 사이트에서 보안 검사를 실행했으며 사용중인 JS 파일 중 하나에 DOM 사이트 간 스크립팅 문제가 있다고 표시되어 어떤 문제를 해결할 수 있는지 잘 모르겠습니다. 그것.보안 검사에서 JS 스크립트 파일의 취약점 표시
파일 : 다음
을 jquery.address1.4.js 신고 된 코드의 부분으로부터 스크립트 :_supported =
(_mozilla && _version >= 1) ||
(_msie && _version >= 6) ||
(_opera && _version >= 9.5) ||
(_webkit && _version >= 523);
if (_supported) {
if (_opera) {
history.navigationMode = 'compatible';
}
if (document.readyState == 'complete') {
var interval = setInterval(function() {
if ($.address) {
_load();
clearInterval(interval);
}
}, 50);
} else {
_options();
$(_load);
}
$(window).bind('popstate', _popstate).bind('unload', _unload);
} else if (!_supported && _hrefHash() !== '') {
_l.replace(_l.href.substr(0, _l.href.indexOf('#')));
} else {
_track();
}
이 코드 줄 :
_l.replace(_l.href.substr(0, _l.href.indexOf('#')));
검색 결과 입력 내용을 삭제하도록 지시하고 있지만 사이트에 "입력"이 없으므로 그 내용이 무엇인지 알 수 없습니다. 위의 코드를 수정하여 보안 검색을 통과시킬 수있는 방법은 무엇입니까?
편집 :이 예에서 unsanitized 값이 URL에서 검색 한 해시 값이됩니다
_window = function() {
try {
return top.document !== UNDEFINED ? top : window;
} catch (e) {
return window;
}
},
ID = 'jQueryAddress',
STRING = 'string',
HASH_CHANGE = 'hashchange',
INIT = 'init',
CHANGE = 'change',
INTERNAL_CHANGE = 'internalChange',
EXTERNAL_CHANGE = 'externalChange',
TRUE = true,
FALSE = false,
_opts = {
autoUpdate: TRUE,
crawlable: FALSE,
history: TRUE,
strict: TRUE,
wrap: FALSE
},
_browser = $.browser,
_version = parseFloat($.browser.version),
_mozilla = _browser.mozilla,
_msie = _browser.msie,
_opera = _browser.opera,
_webkit = _browser.webkit || _browser.safari,
_supported = FALSE,
_t = _window(),
_d = _t.document,
_h = _t.history,
_l = _t.location,
_si = setInterval,
_st = setTimeout,
_re = /\/{2,9}/g,
_agent = navigator.userAgent,
_frame,
_form,
_url = _search(document),
_qi = _url ? _url.indexOf('?') : -1,
_title = _d.title,
_silent = FALSE,
_loaded = FALSE,
_justset = TRUE,
_juststart = TRUE,
_updating = FALSE,
_listeners = {},
_value = _href();
무엇이'_l'입니까? '_l'이 초기화되는 방법을 보여주지 않을 때 보안 문제라고 생각하는 이유를 알기가 어렵습니다. –
안녕하세요, 파일에있는 내용입니다. _l = _t.location, – Keoki
그렇다면 _t는 어떻게 정의되어 있습니까? –