Несмотря на реализацию очистки и проверка, проблема остается. Вот функцию, которую я использую:
Код: Выделить всё
getDocs() {
this._service.getDocs(this.docID).subscribe(res => {
if (res) {
const sanitizedDocID = this.sanitizedDocID(this.docID);
if (res.lstDocs.length) {
const redirectUrl = `doc/${sanitizedDocID}`;
if (this.isValidRedirectUrl(redirectUrl)) {
this._router.navigateByUrl(redirectUrl);
}
} else if (!res.lstDocs.length && res.ListNewDocs.length) {
const redirectUrl = `new-doc/${sanitizedDocID}`;
if (this.isValidRedirectUrl(redirectUrl)) {
this._router.navigateByUrl(redirectUrl);
}
} else {
this._router.navigateByUrl('dashboard');
}
}
});
}
isValidRedirectUrl(url) {
const trustedUrls = ['doc', 'new-doc'];
return trustedUrls.indexOf(url) > -1;
}
sanitizedDocID(docId) {
return docId.replace(/[^0-9]/g, '');
}
Что еще можно сделать, чтобы решить эту проблему? Пожалуйста, помогите.
Подробнее здесь: https://stackoverflow.com/questions/793 ... t-vulnerab
Мобильная версия