Security Grade: F · Score: 10/100
OWASP Top 10 (2021) Coverage
One example per severity is shown below. The full report itemises every finding with evidence, location and a fix.
Anthropic API key appears literally in a source file. Move to environment variable and add the file to .gitignore. Rotate the key — assume it is leaked.
sk-ant…ghijsk-ant-…ghijprocess.env.ANTHROPIC_API_KEYRendering raw HTML with dangerouslySetInnerHTML is the most common XSS vector. Sanitize with DOMPurify or sanitize-html before rendering. If the content is markdown, use a renderer that escapes HTML by default.
dangerouslySetInnerHTML={{ __html: aiResponse }}dangerouslySetInnerHTML={{ __html: userHtml }}dangerouslySetInnerHTML={{ __html: DOMPurify.sanitize(userHtml) }}Calling the Anthropic or OpenAI API without max_tokens means a single request can consume the model's full context window (up to 200k tokens for Claude). This enables denial-of-wallet attacks and unbounded latency spikes. Set an explicit max_tokens appropriate to your use case.
messages.create({anthropic.messages.create({ model: 'claude-...', messages: [...] })anthropic.messages.create({ model: 'claude-...', max_tokens: 1024, messages: [...] })HikmShield performs static analysis across 22 security categories. Static analysis has inherent limits — complement this report with dynamic testing, penetration testing, and dependency auditing (npm audit).