- Added rate limiting to `reaction-users`, `search`, and `image-proxy` APIs to prevent abuse. - Introduced SSRF protection in `image-proxy` to block requests to private IP ranges. - Enhanced `link-preview` to use `linkedom` for HTML parsing and improved meta tag extraction. - Refactored authentication checks in various pages to utilize middleware for cleaner code. - Improved JWT key loading with error handling and security warnings for production. - Updated `authFetch` utility to handle token refresh more efficiently with deduplication. - Enhanced rate limiting utility to trust proxy headers from known sources. - Numerous layout / design changes
28 lines
941 B
Plaintext
28 lines
941 B
Plaintext
---
|
|
import Base from "../layouts/Base.astro";
|
|
import Root from "../components/AppLayout.jsx";
|
|
import LyricSearch from '../components/LyricSearch.jsx';
|
|
|
|
const hostHeader = Astro.request?.headers?.get('host') || '';
|
|
const host = hostHeader.split(':')[0];
|
|
import { getSubsiteByHost } from '../utils/subsites.js';
|
|
import { getSubsiteByPath } from '../utils/subsites.js';
|
|
const detected = getSubsiteByHost(host) ?? getSubsiteByPath(Astro.url.pathname) ?? null;
|
|
const isReq = detected?.short === 'req' || getSubsiteByPath(Astro.url.pathname)?.short === 'req';
|
|
|
|
import { WHITELABELS } from "../config";
|
|
const whitelabel = WHITELABELS[host] ?? (detected ? WHITELABELS[detected.host] : null);
|
|
---
|
|
|
|
<Base>
|
|
{whitelabel ? (
|
|
<section class="page-section">
|
|
<Root child="ReqForm" client:only="react" />
|
|
</section>
|
|
) : (
|
|
<section class="page-section">
|
|
<Root child="LyricSearch" client:only="react" />
|
|
</section>
|
|
)}
|
|
</Base>
|