- Added "HW" (Hardware) category to the platform with a dedicated icon and color
- Updated challenge grid to 6 columns on desktop to accommodate the new category - Alphabetized challenge categories in the main view and Admin panel selection - Alphabetized operators list in the Admin panel with case-insensitive sorting - Restricted visibility of Challenges, Scoreboard, and Score Matrix to authenticated users only - Secured the /state API endpoint to prevent leaking challenges, solves, teams, or internal IP (dockerIp) to guests - Implemented server-side verification of user profile in the state response to prevent client-side admin spoofing - Refactored the /state backend endpoint using async/await for better reliability and error handling - Rebranded the project from "cypherstrike-ctf" to "hipctf" across package.json, index.html, and server defaults - Synchronized browser page title with the competition name configured in the Admin panel - Fixed a "black page" issue by resolving a missing React import and adding frontend sanity checks
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
|
||||
import React, { useState, useEffect } from 'react';
|
||||
import { Navigate, useLocation } from 'react-router-dom';
|
||||
import { Terminal, Radar, Zap, RefreshCw, Box } from 'lucide-react';
|
||||
import { Terminal, Radar, Zap, RefreshCw, Box, Cpu } from 'lucide-react';
|
||||
import { useCTF } from './CTFContext';
|
||||
|
||||
export const formatDuration = (ms: number) => {
|
||||
@@ -51,6 +51,7 @@ export const CategoryIcon: React.FC<{ category: string; size?: number; color?: s
|
||||
case 'PWN': return <Zap size={size} color={color} />;
|
||||
case 'REV': return <RefreshCw size={size} color={color} />;
|
||||
case 'CRY': return <Box size={size} color={color} />;
|
||||
case 'HW': return <Cpu size={size} color={color} />;
|
||||
default: return <Terminal size={size} color={color} />;
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user