Knowledge Base
medianova.comSupportLog in
  • Welcome to the Medianova Knowledge Base
  • Getting Started
    • Concepts
    • Start your Free Trial
  • Products
    • Security
      • DDoS Protection
      • SSL/TLS Encryption
        • How to upload and manage SSL Certificates?
        • How to Extract CRT and KEY Files from a PFX Certificate
        • How can I use Free SSL?
        • FAQ
      • Web Application Firewall (WAF)
        • How to activate WAF?
        • Analytics
      • Rate Limiting
      • Hotlink Protection
      • IP Restriction
      • Geoblocking
      • FAQs
    • Performance / CDN
      • Static Content Delivery
        • Create Small Resource
        • Create Large Resource
        • Integrating Static CDN Resource
        • Configuration Basics
          • Medianova IP Blocks
        • Advanced Configuration
          • Origin Settings
            • Advanced Origin Settings
            • Rewrite Origin URLs
            • Origin SNI Request
            • Redirect Handle From Origin
            • Origin Response Timeout
          • CNAME
          • Caching
            • Edge Cache Expiration
            • Browser Cache Rule
            • Query String Caching
            • Etag Verification
            • Error Status Code Cache Expiration
            • Shared Cache
            • Stale Cache
            • Robots.txt file
            • Range Based Caching
          • Headers
            • CORS Header
            • Custom Header
            • X-CDN Header
            • Origin Host Header
            • HTTP Strict Transport (HSTS) Protection
            • X-Frame Options
            • X-XSS Protection
            • X-Content Type Options
          • Purge
          • Prefetch
          • Page Rules
            • Manage Page Rules
            • Page Rules Settings
          • Compression
            • How to Configure Gzip and Brotli
        • Website Framework Integrations
          • Magento CDN Integration
          • Wordpress CDN Integration
          • Phalcon CDN Integration
          • CakePHP CDN Integration
        • Analytics
      • Dynamic Content Acceleration
        • Create Dynamic Resource
        • Integrating Dynamic CDN Resource
        • Aksela Test Steps
        • Advanced Configuration
          • Origin Settings
            • Advanced Origin Settings
            • Rewrite Origin URLs
            • Origin SNI Request
            • Redirect Handle From Origin
            • Origin Response Timeout
          • Caching
            • Edge Cache Expiration
            • Browser Cache Rule
            • Query String Caching
            • Etag Verification
            • Error Status Code Cache Expiration
            • Shared Cache
            • Stale Cache
            • Disallow Cookie Base Cache
            • Cookie Base Cache
            • Header Base Cache
            • Header Value Base Cache
            • MNUID Cookie Base Cache
            • Mobile Redirect
          • Headers
            • CORS Header
            • Custom Header
            • X-CDN Header
            • Origin Host Header
            • HTTP Strict Transport (HSTS) Protection
            • X-Frame Options
            • X-XSS Protection
            • X-Content Type Options
          • Purge
          • Prefetch
          • Page Rules
          • Compression
        • Analytics
      • Streaming Content Delivery
        • Create Streaming Resource
        • Advanced Configuration
          • Origin Settings
            • Redirect Handle From Origin
            • Origin Response Timeout
          • Headers
            • CORS Header
            • Custom Header
            • X-CDN Header
            • Origin Host Header
          • Stream Management
        • Analytics
      • API Caching
      • Private CDN
      • Image Optimization and WebP
        • What is Image Optimization and How Does It Work?
        • What is WebP and How Does It Work?
        • How to Activate Image Optimization and WebP?
        • Analytics
      • FAQs
    • Object Storage / Stook
      • What is Stook?
      • How to Create Stook?
      • How to Connect Bucket?
      • Access Key Management
      • Stook Integration and Usage Guides
        • Migrating Data to Stook Using Rclone
        • Data Transfer to Stook with Cyberduck
        • How to use the AWS SDK for Laravel with Stook?
        • How to use the AWS SDK for PHP with Stook?
        • How do I use the AWS SDK for .NET with Stook?
        • Stook Storage User Guide for AWS CLI
        • How to use AWS SDK for JavaScript with Stook?
        • How do I use Stook with the AWS Java SDK?
        • Using Pre-Signed URL PHP with Stook
        • Using Pre-Marked URL NODEJS With Stook
    • Analytics (MN Logz)
      • Real-Time Logpush
      • Raw Logs
  • Account & Billing
    • Managing Account and Organizations
      • Create new organization
      • Invite user
      • Changing Cloud Panel password
      • Access Controls and Authentication
    • Subscription and Billing
      • Packages
        • Free Trial
        • Starter
        • Growth
        • Enterprise
        • Add-ons
      • Policy
      • Upgrade & Downgrade Procedures
      • Changing your subscription package
      • Payment Info
      • Invoices
  • API Documentation
    • Authentication
    • Security
      • Web Application Firewall (WAF)
      • SSL/TLS
      • Always Use HTTPS Settings
      • Origin Basic Authentication
      • Secure Token
      • Bot Protection
      • Hotlink Protection
      • User Agent ACL
      • IP Restriction ACL
      • Geoblocking
    • Performance / CDN
      • Resources
      • Origin Settings
      • CNAME & SSL
      • Caching
      • Headers
      • Image Optimization & WebP
      • Page Rule
      • Purge
      • Prefetch
      • Stream Management
    • Object Storage / Stook
    • Analytics
      • WAF Analytics
  • Support and Troubleshooting
    • Common Issues and Solutions
      • Troubleshooting Common Setup Issues
      • Troubleshooting Performance Problems
    • Contacting Customer Support
  • Glossary
    • Definition of Important CDN Terms
    • Acronyms and Abbreviations
    • Definition of HTTP Status Error Codes
Powered by GitBook
LogoLogo

© 2025 Medianova. All rights reserved.

On this page

Was this helpful?

Export as PDF
  1. API Documentation
  2. Security

Web Application Firewall (WAF)

PreviousSecurityNextSSL/TLS

Last updated 5 months ago

Was this helpful?

Create Custom WAF Rule

put
Path parameters
organization_uuidstringRequired

The UUID of the organization

resource_uuidstringRequired

The UUID of the resource

Body
resource_uuidstringRequired

The UUID of the resource

waf_statusstring · enumRequired

The status of the WAF (on, detectiononly, off)

Possible values:
typestringRequired

The type of resource (should be 'waf')

Example: waf
Responses
200
Custom WAF rule creation successful
application/json
put
PUT /api/v1/cdn/{organization_uuid}/resource/{resource_uuid} HTTP/1.1
Host: cloud.medianova.com
Content-Type: application/json
Accept: */*
Content-Length: 606

{
  "resource_uuid": "***-****-*****-****",
  "waf_status": "detectiononly",
  "type": "waf",
  "waf_rules": [
    {
      "rule_name": "rule1",
      "conditions": [
        {
          "field": "user_agent",
          "operator": "contain",
          "value": "test"
        }
      ],
      "rule_action": "block"
    },
    {
      "rule_name": "rule2",
      "conditions": [
        {
          "field": "request_protocol",
          "operator": "not_contain",
          "value": "test"
        }
      ],
      "rule_action": "block"
    },
    {
      "rule_name": "rule6",
      "conditions": [
        {
          "field": "client_ip",
          "operator": "match",
          "value": [
            "1.1.1.1",
            "2.2.2.2"
          ]
        }
      ],
      "rule_action": "allow"
    },
    {
      "rule_name": "rule7",
      "conditions": [
        {
          "field": "request_method",
          "operator": "within",
          "value": [
            "GET",
            "POST",
            "PUT"
          ]
        }
      ],
      "rule_action": "allow"
    }
  ]
}
200

Custom WAF rule creation successful

{
  "status": true,
  "data": {}
}

Delete WAF Rules

put
Path parameters
organization_uuidstringRequired

The UUID of the organization

resource_uuidstringRequired

The UUID of the resource

Body
resource_uuidstringRequired

The UUID of the resource

waf_statusstring · enumRequired

The status of the WAF (on, detectiononly, off)

Possible values:
typestringRequired

The type of resource (should be 'waf')

Example: waf
waf_rulesobject[]Required

An empty array to indicate all rules should be deleted

Responses
200
WAF rules deletion successful
application/json
put
PUT /api/v1/cdn/{organization_uuid}/resource/{resource_uuid} HTTP/1.1
Host: cloud.medianova.com
Content-Type: application/json
Accept: */*
Content-Length: 95

{
  "resource_uuid": "****-***-****-****",
  "waf_status": "detectiononly",
  "type": "waf",
  "waf_rules": []
}
200

WAF rules deletion successful

{
  "status": true,
  "data": {}
}
  • POSTCreate WAF Resource
  • PUTChange WAF Resource Mode
  • PUTCreate Custom WAF Rule
  • PUTDelete WAF Rules

Create WAF Resource

post

Creates a new WAF resource for the specified organization.

Path parameters
organization_uuidstringRequired

UUID of the organization

Body
resource_typestringRequiredExample: dynamic
data_sourcestringRequiredExample: origin
protocolstringRequiredExample: https
origin_urlstringRequiredExample: test.com
server_namestringRequiredExample: domain.test.com
resource_namestringRequiredExample: waf-213105900
extensionsstringRequiredExample: waf
Responses
200
WAF resource created successfully
application/json
post
POST /api/v1/cdn/{organization_uuid}/resource HTTP/1.1
Host: cloud.medianova.com
Content-Type: application/json
Accept: */*
Content-Length: 176

{
  "resource_type": "dynamic",
  "data_source": "origin",
  "protocol": "https",
  "origin_url": "test.com",
  "server_name": "domain.test.com",
  "resource_name": "waf-213105900",
  "extensions": "waf"
}
200

WAF resource created successfully

{
  "status": true,
  "data": {
    "resource_uuid": "****-****-****-****",
    "resource_type": "dynamic",
    "resource_name": "waf-213105900",
    "cdn_url": "waf-213105900.mncdn.org",
    "resource_label": null,
    "ssl_certificate": "sni",
    "created_at": "2023-12-15T18:31:06.000000Z",
    "data_source": "origin",
    "server_name": "domain.test.com",
    "protocol": "https",
    "origin_url": "test.com",
    "gzip_text": false,
    "gzip_image": false,
    "brotli": false,
    "image_optimization": false,
    "webp": true,
    "avif": null,
    "http2": true,
    "status_qs": false,
    "status_secure_token": false
  }
}

Change WAF Resource Mode

put
Path parameters
organization_uuidstringRequired

The UUID of the organization

resource_uuidstringRequired

The UUID of the resource

Body
resource_uuidstringRequired

The UUID of the resource

waf_statusstring · enumRequired

The status of the WAF (on, detectiononly, off)

Possible values:
typestringRequired

The type of resource (should be 'waf')

Example: waf
Responses
200
WAF resource mode change successful
application/json
put
PUT /api/v1/cdn/{organization_uuid}/resource/{resource_uuid} HTTP/1.1
Host: cloud.medianova.com
Content-Type: application/json
Accept: */*
Content-Length: 126

{
  "resource_uuid": "text",
  "waf_status": "on",
  "type": "waf",
  "waf_global_rules": [
    {
      "secruleid": "text",
      "status": "enabled",
      "score": 1
    }
  ]
}
200

WAF resource mode change successful

{
  "status": true,
  "data": {}
}