mirror of
https://github.com/duckietm/Nitro-V3.git
synced 2026-06-20 07:26:19 +00:00
㊙️ Security Fixes
- XSS fix: Created SanitizeHtml.ts utility using DOMPurify (already in package.json but never used). Wrapped all 21 dangerouslySetInnerHTML calls in catalog views with SanitizeHtml() — only allows safe tags (b, i, u, br, span, div, p, a, strong, em, img) - Race condition fix: Added 10-second timeout fallbacks on purchase flags in CatalogPurchaseWidgetView and CatalogGiftView so the flag auto-resets even if the server never responds
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
import DOMPurify from 'dompurify';
|
||||
|
||||
export const SanitizeHtml = (html: string): string =>
|
||||
{
|
||||
return DOMPurify.sanitize(html, {
|
||||
ALLOWED_TAGS: [ 'b', 'i', 'u', 'br', 'span', 'div', 'p', 'a', 'strong', 'em', 'img' ],
|
||||
ALLOWED_ATTR: [ 'href', 'target', 'class', 'style', 'src', 'alt' ],
|
||||
ALLOW_DATA_ATTR: false
|
||||
});
|
||||
};
|
||||
@@ -15,6 +15,7 @@ export * from './PrefixUtils';
|
||||
export * from './ProductImageUtility';
|
||||
export * from './Randomizer';
|
||||
export * from './RoomChatFormatter';
|
||||
export * from './SanitizeHtml';
|
||||
export * from './SetLocalStorage';
|
||||
export * from './SoundNames';
|
||||
export * from './WindowSaveOptions';
|
||||
|
||||
Reference in New Issue
Block a user