Wynglet

Security & Abuse Protection

Wynglet is designed with security and abuse prevention as core features. Every API and service is protected by multiple layers of validation and rate limiting.

Domain-Based Authorization

How It Works

Wynglet operates on a deny-by-default security model:

Setting Up Domain Authorization

  1. Go to the Dashboard at https://wynglet.your-server.com/dashboard
  2. Navigate to the Domains section
  3. Click Add Domain
  4. Enter your domain (e.g., example.com or subdomain.example.com)
  5. Save

If your instance has recently received requests from particular domains, you will see these listed there (with the denied-by-default status). This allows you to quickly allow-list domains while bringing up new sites. If you do not explicitly authorize a domain, it will stop showing up in the list after a few days.

Domain Matching Rules

Why This Matters

Without domain authorization, anyone could use your Wynglet instance:

Rate Limiting

In addition to Domain Authorization, Wynglet uses IP-based rate limiting to prevent abuse and protect server resources.

Global Rate Limits

Each IP address is limited across all features:

What Happens When Rate Limits Are Exceeded

When a rate limit is exceeded, the request is rejected with a 429 Too Many Requests status code.

Bypassing Rate Limits

Rate limits apply per-IP. Multiple clients from different IP addresses can submit simultaneously. However:

CSRF Protection

What Is CSRF?

Cross-Site Request Forgery (CSRF) is an attack where a malicious site tricks your browser into making unwanted requests to another site on your behalf.

How Wynglet Protects Against It

Wynglet uses CSRF tokens for form submissions:

  1. Before rendering a form, you request a token from Wynglet
  2. You include this token in any form submission
  3. Wynglet validates that the token is present and valid
  4. Malicious sites don’t have access to your valid tokens

Token Validation

Honeypot Fields

How It Works

A honeypot field is a hidden form field that humans won’t see, but automated bots will fill in.

Example:


<input type="hidden" name="_honeypot" value="">

When a form is submitted:

Wynglet automatically rejects submissions where honeypot fields are filled in.

CORS Validation

What Is CORS?

Cross-Origin Resource Sharing (CORS) is a browser security feature that controls which sites can make requests to an API.

How Wynglet Uses CORS

In practice, this means:

Debug Mode

Toggling Debug Mode

You can enable per-domain debug mode in the Dashboard:

  1. Go to Domains section
  2. Find your domain
  3. Toggle Debug Mode

When enabled, Wynglet logs detailed information about requests from that domain, helping you troubleshoot issues.

Best Practices

Monitoring Abuse

Signs of Abuse

What To Do

  1. Check the Logs section in the Dashboard for errors
  2. Review Ratings and Submissions for spam
  3. Check if the attacking IP is on your domain allow-list
  4. Consider removing offending domains if they’re being abused
  5. Enable Debug Mode for detailed information

Reporting Security Issues

If you discover a security vulnerability in Wynglet:

  1. Do not post it publicly
  2. Do not include it in a GitHub issue
  3. Visit the Security Policy for reporting procedures

Next Steps