FAQ

Short answers to your questions, each with a link to the page that has the details.

About EyalSec

Questions about what EyalSec is, what it finds, how it compares and how you buy it.

What is EyalSec?

EyalSec makes es-python, a secure Python runtime that runs your code unchanged and reports or blocks untrusted data reaching a dangerous operation. See What is EyalSec?.

What vulnerabilities does EyalSec detect?

EyalSec detects attacker data reaching a dangerous operation: SQL injection, command injection, code injection, deserialization, path traversal and SSRF. Not flaws without a data flow. See How EyalSec works and the vulnerability classes.

Does EyalSec cover third-party dependencies?

Yes: EyalSec checks the dangerous operation itself, so a flaw inside Django or any installed library is covered like your own code, CVE or not.

Does EyalSec produce false positives?

An EyalSec event is a confirmed flow: untrusted data really reached a dangerous operation. You still judge whether it is exploitable; parameterized queries never fire. See Suppressed events and Rules for hiding flows you expect.

How is EyalSec different from a WAF, SAST, SCA or RASP?

EyalSec checks the operation your program performs, with the data that reached it. WAF, SAST, SCA and RASP see the request, source or packages.

How is EyalSec priced?

EyalSec is priced by usage: a monthly rate per machine plus a rate per detection. There is no free tier and no trial. See the pricing calculator and Plans and limits.

How do I get started with EyalSec?

Book a live demo: EyalSec runs es-python on your own code with you, then sets up your account and gives you a one-line install command. Book a live demo, then follow the Quick start.

Getting started

Questions about setting up and what EyalSec needs from you.

Do I need to change my code to use EyalSec?

No: you start your application with es-python instead of python, and your code and packages run unchanged. Your regular python stays installed. See Running es-python.

I registered, but the dashboard says I have no active plan. What now?

Registering and verifying your email gives you a working sign-in, not a plan. Until a plan is set up you cannot add machines and your events lists stay empty. Email sales@eyalsec.com to book a live demo and have your plan set up; it applies the moment it is set, with nothing to reinstall. See No plan yet.

I installed es-python. Why is nothing reported?

Usually because no source that your program uses is on. A machine you add watches socket and file from the start and every other source is off, and a machine whose sources were switched off reports nothing. Turn on the sources you want in the Configure modal, then restart your program. If you still see nothing, work through No events.

Which Python versions and frameworks does es-python support?

es-python supports Python 3.9, 3.10, 3.11, 3.12, 3.13 and 3.14 on Linux (x86_64 and aarch64), with any framework, including Django, Flask and FastAPI. You pick the version when you add the machine, and several versions can be installed side by side; see Python versions.

Can I keep using my packages and virtual environments?

Yes. es-python uses the packages you installed for your regular Python of the same version, and es-python -m venv creates virtual environments as usual. See Packages and libraries.

Can I put more than one machine on one computer?

Yes, as long as each uses a different Python version: each installs its own es-python3.X command. Plain es-python runs the one installed last; see Python versions.

Using EyalSec

Questions about day-to-day behavior.

How much does es-python slow an application down?

It depends on which sources you switch on: with none, es-python runs at regular Python speed. Measure it on your own application. See Speed and sources.

What is the difference between Report and Report and Raise?

Report records each event and lets the program keep running; Report and Raise also stops the operation with a Python RuntimeError. See Report and Raise.

Will Report and Raise break my app?

Only at the moment untrusted data actually reaches a risky operation. Normal traffic is unaffected; when it steps in, it raises an ordinary Python RuntimeError, which your code can catch like any other. Many teams start with Report and switch on Raise once they trust what is detected; see Report and Raise.

Why can't I create a Raise rule?

Raise (blocking) is enabled per plan. Without it, saving a Raise rule shows "Raise rules are not on your plan yet. Email sales@eyalsec.com to add them." Every other rule mode works on every account. Email sales@eyalsec.com to have it enabled; see Raise.

Does EyalSec send my source code anywhere?

Not by default: your source code stays on the machine. Events carry the operation, the untrusted value, its origin and the stack trace. See Sent with each event and Masking.

Why does one row say 250?

Repeats of the same event are counted on one row instead of filling the list, and the number is that count. You choose what makes two events "the same" with Unique event.

Can I see what one run of my program did?

Yes. es-python tags each event with the run (one start of a program) that produced it. Pick the run on the events page to see only its events; see Runs.

Do dropped or hidden events use up my quota?

Events dropped by a Don't send rule are never sent, so they are not stored and do not count. Hidden events (a Hide rule or a filter) are still stored. See Event quota and Rules.

Machines and updates

Questions about keeping machines current.

How do I update a machine to a newer build?

When a machine shows newer build available, reinstall it: click Install on its row and run the new command on the computer. The machine keeps its identity and all its events. Then restart programs that are still running the old copy; see Reinstall.

How do I go back to normal Python?

Run python as you always did. EyalSec installs alongside your Python and never replaces it. To remove EyalSec entirely, see Uninstall.

Can I use AI coding assistants with es-python?

Yes. Run eyalsec agents-init in a project to give Claude Code, Cursor, Codex and similar tools a short description of es-python, so they run your code with it; see AI coding assistants.

Account

Questions about signing in and automation.

I lost my two-factor device. How do I sign in?

Use one of the backup codes you saved when you set up two-factor authentication: choose Use a backup code instead on the sign-in screen. Each works once. If you turned on email codes, you can have a code emailed instead. Then set up your authenticator again and make new backup codes; see Backup codes. If you have neither, email support@eyalsec.com.

How do I use the API?

Generate an API key in Settings, then send it in the X-API-Key header of each request:

curl -H "X-API-Key: es2_EXAMPLEONLYnotarealkey" https://eyalsec.com/api/get_all_machines/

A full-access key can do what your account can; a read-only key can only read. See API.

Something unclear or missing on this page? Email support@eyalsec.com.

EyalSec Pricing Docs Security Research Vulnerabilities Security glossary About Contact עברית Login Book a live demo