Application Security

SkillSecurity

Secure applications against common vulnerabilities. Use when reviewing code for security, implementing security controls, or hardening applications. Covers OWASP Top 10.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Application Security skill

What this skill tells your AI

The instructions your AI receives, as published by nguyenhuuca/assessment in .claude/skills/security/application-security/SKILL.md and read by ahel’s review.

OWASP Top 10 (2021)

1. Broken Access Control

Risk: Users accessing unauthorized resources.

Prevention:

  • Deny by default
  • Implement RBAC/ABAC
  • Validate permissions server-side
  • Log access failures

2. Cryptographic Failures

Risk: Sensitive data exposure.

Prevention:

  • Encrypt data at rest and in transit
  • Use strong algorithms (AES-256, RSA-2048+)
  • Never store passwords in plaintext
  • Use secure key management

3. Injection

Risk: Malicious input executed as code.

Prevention:

// ❌ BAD - SQL injection vulnerability
@GetMapping("/users/{id}")
public User getUser(@PathVariable String id) {
    String query = "SELECT * FROM users WHERE id = " + id;
    return jdbcTemplate.queryForObject(query, User.class);
}

// ✅ GOOD - Use JPA/Spring Data (parameterized by default)
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
    Optional<User> findById(Long id);
}

// ✅ GOOD - JPQL with named parameters
@Query("SELECT u FROM User u WHERE u.email = :email AND u.status = :status")
Optional<User> findByEmailAndStatus(
    @Param("email") String email,
    @Param("status") UserStatus status
);

// ❌ BAD - Command injection
Runtime.getRuntime().exec("ls " + userInput);

// ✅ GOOD - Use ProcessBuilder with separate arguments
ProcessBuilder pb = new ProcessBuilder("ls", userInput);
Process p = pb.start();

4. Insecure Design

Risk: Missing security controls by design.

Prevention:

  • Threat modeling
  • Security requirements
  • Defense in depth

5. Security Misconfiguration

Risk: Default or weak configuration.

Prevention:

  • Disable unnecessary features
  • Remove default credentials
  • Keep software updated
  • Harden server configuration

6. Vulnerable Components

Risk: Using libraries with known vulnerabilities.

Prevention:

  • Regular dependency audits
  • Keep dependencies updated
  • Monitor CVE databases

7. Authentication Failures

Risk: Weak or broken authentication.

Prevention:

  • Multi-factor authentication
  • Strong password policies
  • Secure session management
  • Rate limiting on login

8. Software & Data Integrity

Risk: Untrusted sources for updates.

Prevention:

  • Verify code signatures
  • Use SRI for CDN resources
  • Secure CI/CD pipeline

9. Logging & Monitoring Failures

Risk: Attacks go undetected.

Prevention:

  • Log security events
  • Monitor for anomalies
  • Alert on suspicious activity

10. Server-Side Request Forgery

Risk: Server makes requests to unintended destinations.

Prevention:

  • Validate URLs
  • Use allowlists
  • Block internal IPs

Signals

GitHub stars
34
Forks
25
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
application-security
Source
github.com/nguyenhuuca/assessment