Add files via upload

This commit is contained in:
Egor
2026-01-18 05:26:47 +03:00
committed by GitHub
parent 5882c305ef
commit 4d7437f069
2 changed files with 94 additions and 0 deletions

View File

@@ -253,3 +253,40 @@ class TokenRefreshManager {
}
export const tokenRefreshManager = new TokenRefreshManager()
/**
* Безопасный редирект на страницу логина
* Валидирует URL чтобы предотвратить open redirect уязвимость
*/
export function safeRedirectToLogin(): void {
// Разрешённые пути для редиректа (относительные пути нашего приложения)
const loginPath = '/login'
// Проверяем, что мы на том же origin
if (typeof window !== 'undefined') {
// Используем только относительный путь для безопасности
window.location.href = loginPath
}
}
/**
* Валидирует URL для редиректа
* Возвращает true только для безопасных URL (относительные пути или тот же origin)
*/
export function isValidRedirectUrl(url: string): boolean {
// Пустой URL - небезопасен
if (!url) return false
// Относительные пути всегда безопасны
if (url.startsWith('/') && !url.startsWith('//')) {
return true
}
try {
const parsed = new URL(url, window.location.origin)
// Разрешаем только тот же origin
return parsed.origin === window.location.origin
} catch {
return false
}
}