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 4 months ago

Was this helpful?

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": {}
}

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
  }
}

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 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": {}
}