← Back to Safety Checks

SQL Injection Protection

Critical Severity

What This Check Measures

This check assesses whether the website has protection against SQL Injection attacks — a technique where malicious SQL code is inserted into queries through user input fields.

Why It Matters

How Data Is Obtained

Source File

src/checks/safety.check.js

Function

SafetyCheck.analyze(url)

Current Implementation

// Informational - requires comprehensive penetration testing
checks.push({
  name: 'SQL Injection Protection',
  status: 'info',
  description: 'Server-side security requires comprehensive penetration testing',
  severity: 'critical'
});

Status Values

Status Meaning
info Informational only. SQL injection testing requires active penetration testing which SiteSentinel does not perform.

Severity: Critical

This check has critical severity because:

Why SiteSentinel Doesn't Test This Actively

Important Limitations

Active SQL injection testing involves:

  • Sending malicious payloads to form inputs and URL parameters
  • Attempting to break application logic
  • Potentially causing damage to databases or triggering security alerts

This type of testing:

  • Requires explicit authorization from the website owner
  • May be illegal without permission
  • Could disrupt live services
  • Should be performed by professional penetration testers

Recommendations

Protecting Against SQL Injection

  • Parameterized Queries — Use prepared statements with bound parameters
  • ORMs — Use Object-Relational Mappers that handle escaping
  • Input Validation — Whitelist allowed characters and patterns
  • WAF — Deploy a Web Application Firewall
  • Least Privilege — Database accounts should have minimal permissions
  • Regular Audits — Hire professionals for penetration testing

Impact on Category Score

Currently returns info status, which has neutral impact on the category score. The check serves as a reminder that SQL injection protection should be verified through proper security audits.