# Getting Started with Zen Firewall

### Introduction <a href="#introduction" id="introduction"></a>

Zen Firewall by Aikido is a powerful Application Firewall that embeds directly into your code to protect your applications against attacks.

It protects your apps by preventing user input containing dangerous strings, which usually allow for **injection** and **path traversal** attacks. Zen protects your apps from common attacks by:

> Zen Firewall by Aikido operates autonomously on the same server as your app to secure your app like a classic web application firewall (WAF), but **without the infrastructure or cost**.

* ✨ Preventing dangerous user input that enables injection and path traversal
* 🛡️ Automatically blocking critical injection attacks
* 🚦 Rate limiting routes and users
* 🤖 Blocking malicious traffic (bots, TOR, known attackers)
* 🌍 Controlling access by country
* 🔍 Monitoring outbound traffic

### Languages and How to install <a href="#languages-and-how-to-install" id="languages-and-how-to-install"></a>

> We do **not send** any data back to the cloud to do security checks. The token is only used to communicate when attacks are detected to show in the dashboard.

* **Supported:**
  * [Node.js](https://github.com/AikidoSec/firewall-node)
  * [Python](https://github.com/AikidoSec/firewall-python?tab=readme-ov-file)
  * [PHP](https://github.com/AikidoSec/firewall-php)
  * [Java](https://github.com/AikidoSec/firewall-java)
  * [.NET Core and Framework](https://github.com/AikidoSec/firewall-dotnet)
  * [Ruby](https://github.com/AikidoSec/firewall-ruby)
  * [Golang](https://github.com/AikidoSec/firewall-go) (beta)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.aikido.dev/zen-firewall/getting-started-with-zen-firewall.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
