Основи безпеки
Чи безпечний Cursor AI? Редактор, код і опублікований застосунок
Чи безпечний Cursor AI? Три запитання в одному пошуку: що Cursor зберігає, у чому помиляється його код і чи відкритий застосунок, який ви опублікували.

Коротко
- Чи безпечний Cursor AI? Як редактор, це звичайний хмарний інструмент: ваш код іде на його сервери, щоб отримати відповідь, один перемикач вирішує, що залишається, і в нього є атестація SOC 2 Type II.
- Код, який він пише, це друге запитання. У весняному тесті Veracode 2026 року понад 150 моделей видали код, який компілювався понад 95 % випадків і був безпечним у 55 % випадків.
- Застосунок, який ви опублікували, це третє запитання, і єдине, на яке може відповісти сканування ззовні. Ми не можемо відрізнити застосунок на Cursor від будь-якого іншого, і в цьому суть: ніщо від редактора не доходить до того, що ви опублікували.
Ви зібрали щось у Cursor, воно працює, і ви от-от запустите туди справжніх людей. Десь того тижня ви набрали «чи безпечний cursor ai» в пошуку, і у відповідь отримали сторінку про налаштування приватності Cursor, сторінку про те, чи вартий чогось код, написаний ШІ, і сторінку з завантаженням користувацьких курсорів для миші. Жодна з них не сказала ні слова про застосунок, який ви збираєтеся опублікувати.
Ось у чому помиляється більшість тих відповідей: «чи безпечний Cursor AI» це три запитання в одному реченні, і відповіді на них різні. Два з них про Cursor і моделі за ним. Третє про те, що опублікували ви, і саме воно вирішує, чи зможе незнайомець прочитати дані ваших користувачів.
Уявіть Cursor як підрядника, якого ви найняли збудувати дім. Чи залишає він собі копію ваших креслень, це одне запитання. Чи відповідає те, що він будує, будівельним нормам, це друге. Чи замикаються двері після того, як ви заїхали, це третє, і воно залишається вашим запитанням, поки ви там живете.
Чи безпечний Cursor AI?
Як редактор, це звичайний хмарний інструмент: перемикач приватності, опублікована сторінка безпеки й атестація SOC 2 Type II. Це відповідає на одне з трьох запитань, і не на те, яке вирішує, чи зможуть незнайомці прочитати дані ваших користувачів.
- Редактор. Чи зберігає Cursor ваш код, чи навчається на ньому, чи передає його комусь іще. Це копія креслень у підрядника.
- Код. Чи безпечне те, що пише ШІ. Це питання, чи дім відповідає нормам, і ніхто не перевіряє цього на вході.
- Застосунок, який ви опублікували. Те, до чого незнайомець дотягнеться з вулиці: ключ у коді, який завантажує браузер, база даних, яка відповідає без входу, файл, який ніколи не мав би мати URL. Це і є двері.
Ніщо з боку Cursor не може відповісти на третє. Ніщо з нашого боку не може відповісти на перші два.
Чи зберігає Cursor мій код?
Стільки, скільки потрібно, щоб вам відповісти, так. Далі все залежить від одного перемикача.
Cursor є хмарним інструментом. Коли ви його про щось запитуєте, відповідні частини вашого проєкту залишають ваш комп’ютер, ідуть на сервери Cursor і передаються постачальнику моделі (OpenAI, Anthropic, Google, залежно від того, яку модель ви обрали), щоб отримати відповідь. Так працює продукт. Креслення мають дійти до підрядника.
Що відбувається потім, вирішує перемикач, і сторінка про використання даних Cursor подає обидві позиції в одному абзаці. З увімкненим Privacy Mode «дані клієнтів не використовуватимуться Cursor для навчання», і Cursor «має угоди про нульове зберігання даних (ZDR) з усіма постачальниками», тобто компанії, які запускають моделі, теж зобов’язуються нічого не зберігати. З вимкненим Cursor «може використовувати та зберігати дані кодової бази, промпти, дії в редакторі, фрагменти коду та інші дані й дії з кодом, щоб покращувати наші функції ШІ й навчати наші моделі».
Перемикач доступний на кожному тарифі, включно з безкоштовним, а адміністратор команди чи компанії може ввімкнути його для всіх і не дати учасникам його вимкнути. Власний посібник із захисту Cursor каже, що на облікових записах Enterprise він увімкнений за замовчуванням. На індивідуальному тарифі це налаштування, і його варто знайти сьогодні.
Ще одне про нього, бо когось це вже спіймало. З середини 2025 року є дві версії: «Privacy Mode», який дозволяє Cursor зберігати частину даних для функцій на кшталт хмарних агентів і пам’яті, та «Privacy Mode (Legacy)», який не зберігає нічого. У липні 2026 року дописувач на Hacker News описав, як увійшов у застосунок для iOS і виявив, що його обліковий запис перевели зі старого налаштування на поточне. Співробітник Cursor відповів, що це зробила пропозиція ввімкнути хмарних агентів, «не пояснивши, що це означає і що це важко скасувати», і що повернутися назад у застосунку неможливо. Якщо ви обрали суворішу версію, перевірте, чи вона досі вибрана.
Сертифікати відповідають на вужче запитання, ніж здається. На сторінці безпеки Cursor перелічено атестацію SOC 2 Type II, ISO/IEC 27001 та ISO/IEC 42001. Вони означають, що зовнішній аудитор перевірив, що Cursor має контроль над тим, як він поводиться з даними, які тримає, так само як довідка про страхування підрядника каже, що підрядник застрахований. Вони нічого не кажуть про код, який він пише, і нічого про застосунок, який ви з ним розгортаєте.
Що надсилає індексування кодової бази?
Індекс вашого проєкту, який зберігається на серверах Cursor, із зашифрованими шляхами до файлів і кодом, який ніколи не зберігається як читабельний текст.
Індексування є тим способом, яким Cursor відповідає на запитання про весь ваш проєкт, а не лише про відкритий файл. Він розбиває ваші файли на фрагменти, надсилає їх на сервери Cursor, щоб перетворити на ембединги (числовий підсумок того, про що кожен фрагмент), і зберігає ці ембединги, щоб, коли ви запитаєте «де в нас обробка повернень», знайти потрібні фрагменти. Документація Cursor каже: «Шляхи до файлів шифруються перед надсиланням на сервери Cursor. Вміст коду ніколи не зберігається у відкритому вигляді». З їхнього боку залишається мапа вашого коду, а це інша річ, ніж його копія.
Про мапу варто знати дві речі.
Деякі файли за замовчуванням не потрапляють до неї, і ви можете додати
інші. Cursor пропускає все з вашого .gitignore і стандартний список, до
якого входить .env*, файл, де зазвичай живуть ваші секретні ключі. Файл
.cursorignore у корені проєкту, написаний тим самим синтаксисом, що й
.gitignore, тримає все інше, що ви в ньому назвете, поза індексом і поза
тим, що показують ШІ.
Термінал агента цей список не читає. Це застереження, яке важливе для
ключів.
Сторінка про файли виключень
Cursor каже, що «інструменти термінала та сервера MCP, які використовує Agent,
не можуть заблокувати доступ до коду, на який поширюється .cursorignore», і
що «повний захист не гарантовано через непередбачуваність LLM». Коли агент
виконує команду на вашій машині, він може прочитати .env так само, як будь-яка
команда. Файл поза індексом і все ще в межах досяжності. Якщо ключ лежить у
теці проєкту, яку ви відкрили в Cursor, вважайте його ключем, який агент може
побачити.
Чи безпечний код, який пише Cursor?
За замовчуванням ні, і це виміряно, хоча вимірювали моделі, які Cursor використовує, а не сам Cursor.
Veracode, компанія, що продає тестування безпеки коду, прогнала понад 150 моделей через ті самі 80 завдань з програмування чотирма мовами, і в кожному завданні є безпечний і небезпечний спосіб виконати роботу. Її весняне оновлення 2026 року, опубліковане 24 березня 2026 року, показало, що лише 55 % результатів були безпечними, і цю цифру Veracode називає «практично такою самою, як два роки тому», тоді як частка коду, що компілювався, перевищила 95 %. У двох із чотирьох типів вад моделі майже ніколи не обирали безпечний варіант: міжсайтовий скриптинг, який дозволяє тексту одного відвідувача виконатися як код у браузері іншого, вони проходили в 15 % випадків, а ін’єкцію в логи в 13 %.
Власний підсумок Veracode такий: моделі «стали чудово писати код, який компілюється. І провалилися в написанні коду, який безпечний».
Для вас, людини, яка цього коду не писала, розрив між цими двома числами і є всім висновком. Тест, який ви проводите на проєкті в Cursor, це чи він працює: ви клацаєте по застосунку, і з’являється те, що треба. Це ті 95 %. Тест, якого ніхто не проводить, це чи код вирішив, кому що можна бачити, і 55 % кажуть, що це рішення ухвалювали приблизно в половині випадків. Застосунок може повністю пройти перший тест і провалити другий, бо сторінка, яка показує вам ваші замовлення, і сторінка, яка показує будь-кому замовлення всіх, для власника облікового запису мають однаковий вигляд.
Де має жити це рішення, і чому «завантаж замовлення» ніколи не ухвалює його саме по собі, є в середині посібника з Cursor.
Prompt injection простими словами
Модель сприймає інструкції як інструкції всюди, де їх знаходить, зокрема всередині того, що вона мала лише прочитати.
Ви кажете Cursor «підсумуй цю гілку» або «наведи лад у цьому файлі», і для цього він читає гілку чи файл. Якщо в гілці є речення, написане так, щоб бути схожим на інструкцію для ШІ, модель може його виконати, бо в неї немає надійного способу відрізнити ваш голос від голосу сторінки. Це і є prompt injection, і в агенті для програмування, який може редагувати файли й виконувати команди на вашій машині, наслідки сягають далі за поганий підсумок.
Два випадки з назвами, обидва проти Cursor. У березні 2025 року Pillar
Security опублікувала
«Rules File Backdoor»:
інструкції, сховані невидимими символами Unicode у файлі .cursor/rules,
файлі конфігурації, який каже Cursor, як ви хочете, щоб він писав ваш код. У
редакторі й у diff на GitHub файл мав чистий вигляд, а нишком наказував ШІ
додавати до кожної згенерованої сторінки скрипт з домену зловмисника і ніколи
про це не згадувати. Відповідь Cursor була такою, що це не вразливість його
платформи і що відповідальність лежить на користувачеві. У серпні 2025 року
Aim Security оприлюднила
CVE-2025-54135,
яку вони назвали CurXecute: повідомлення в публічному каналі Slack, яке Cursor
читав через сервер MCP (плагін, що дає агентові доступ до зовнішніх
інструментів), могло змусити агента дописати запис у його власну конфігурацію
mcp.json, і Cursor запускав цей запис, виконуючи команду зловмисника, ще до
того, як ви схвалили зміну. Cursor виправив це у версії 1.3 від 29 липня 2025
року, і тепер кожна зміна цього файлу чекає на ваше схвалення.
Що з цього випливає для вас, коротко. Файл правил, який ви скопіювали з репозиторію чи допису в блозі, є кодом, і він керує всім, що агент напише після нього, тож читайте його як код. Оновлюйте Cursor, адже виправлення CurXecute було номером версії. І кожен сервер MCP, який ви під’єднуєте і який читає текст ззовні, поштову скриньку, чергу тікетів, пошук, передає агентові речення, яких ви не писали.
Що сканування 30 998 живих застосунків каже про третє запитання
Що ніщо від редактора не доходить до застосунку, який ви опублікували. Ми не можемо ззовні відрізнити застосунок на Cursor від будь-якого іншого, і це і є висновок.
Між 12 і 14 серпня 2026 року ми прогнали дев’ять зовнішніх перевірок, які будь-хто може безкоштовно запустити на нашій головній сторінці, через 30 998 живих застосунків. Ми знаходили їх за місцем публікації: 18 554 на домені Lovable, 5 438 на домені Base44, 3 042 на домені Replit і так далі. Проєкт на Cursor розгортається там, куди ви його покладете, на Vercel, на Netlify, на домені, який ви купили, і сторінка, яку завантажує відвідувач, не несе жодного сліду редактора, який її написав. Тож колонки Cursor у звіті немає, і бути не може.
А що є, на кожному білдері, який ми вимірювали, так це той самий короткий перелік речей, які власник залишив відкритими, і жодну з них не вирішує редактор. Кожна частка нижче рахується серед застосунків, на яких ця перевірка відповіла, бо перевірка, яка не змогла завершитися, є невідомою, а не пройденою. Жоден застосунок не названо ні тут, ні деінде в наших публікаціях.
| Що ми перевіряли | Застосунки | Хто це вирішує у проєкті на Cursor |
|---|---|---|
| Таблиця бази даних, яку можна прочитати без входу | 2 096 із 3 680 (57 %) | Ви, у базі даних |
| Маршрут API, який відповів незнайомцю даними | 3 852 із 30 926 (12 %) | Ви, у коді |
| Віддано source map (на Base44 переважно платформа) | 3 885 із 30 987 (13 %) | Ви, у збірці, поза Base44 |
| Щось схоже на ключ у коді, який завантажує відвідувач | 1 332 із 30 998 (4 %) | Ви, у коді |
| Ключ, який списує гроші з рахунку або обходить усі правила | 52 із 30 998 | Ви, у коді |
Приватний файл на кшталт .env чи .git/config за публічним URL | 8 із 30 749 | Ви, у розгортанні |
| Відсутні заголовки безпеки браузера | 30 756 із 30 981 (99 %) | Ви, на хостингу |
Перший рядок виміряно на 3 680 застосунках, які назвали проєкт Supabase і чия
база даних відповіла на запитання, тому його база менша;
що ця перевірка читає, а що ні
містить усю драбину. П’ятий рядок це той, що коштує грошей сам по собі:
секретний ключ OpenAI, Anthropic, AWS чи Stripe або ключ service_role від
Supabase у коді, який завантажує браузер.
Остання колонка це те, що змінюється на Cursor. На власному домені білдера два з цих рядків належать хостингу: заголовки надсилає те, що віддає сторінку, а source maps ідуть за налаштуваннями збірки білдера. Проєкт на Cursor це ваш репозиторій, ваша збірка і ваше розгортання, тож кожен рядок цієї таблиці ваш, зокрема й ті два, які власник застосунку на Lovable не контролює. Це більше контролю і більше того, що треба перевіряти, і саме тому посібник з Cursor витрачає час на вашу збірку і вашу базу даних, а не на редактор. Допис про Replit ставить ті самі три запитання платформі, яка і хостить застосунок, і дає вам випустити власний сервер.
П’ятихвилинна перевірка ззовні
Для перших трьох пунктів використайте приватне вікно, щоб ваш власний вхід не відповідав замість незнайомця.
- Відкрийте свою опубліковану адресу з
/.envнаприкінці, потім із/.git/config. Обидва мають не відкритися. Якщо котрийсь показує текст, сьогодні ж ротуйте кожен ключ у ньому, а потім виправте розгортання, щоб цей файл ніколи не віддавався. - Так само відкрийте один зі своїх маршрутів API, той, який ви не хотіли б дати прочитати незнайомцеві. Якщо він відповідає даними, цьому маршруту потрібна перевірка входу.
- Відкрийте свій живий застосунок, а потім вкладку Sources в інструментах розробника браузера. Якщо ви можете читати свої оригінальні файли з коментарями, source maps увімкнені у вашій production-збірці.
- Якщо ваші дані в Supabase, внутрішня половина перевірки є в
посібнику з Cursor: пошукайте
service_roleіsk_live_у результаті збірки, а потім відкрийте сторінку політик. - Або нехай це зробить сканування. Воно запускає ці й решту з дев’яти перевірок ззовні, триває близько 20 секунд, не потребує облікового запису і друкує «Не вдалося перевірити» для всього, на що не змогло відповісти, замість галочки: просканувати застосунок.
Що змінюється після наступного push?
Будь-що. Проєкт на Cursor виходить у світ, коли ви робите push, і ніщо між вашим редактором та інтернетом не перечитує застосунок у пошуках маршруту, який втратив перевірку входу, ключа, вставленого опівночі, щоб проскочити збірку, яка падала, чи source map, яка знову ввімкнулася після зміни конфігурації. Цифра Veracode є причиною, чому тут це важить більше, ніж на білдері: кожен сеанс з агентом це новий код, який компілюється і може бути небезпечним, а сканування, яке ви запускали минулого місяця, описує застосунок минулого місяця.
Reeve Monitor створений саме для цього. Він щогодини повторює всі дев’ять перевірок на щонайбільше трьох застосунках, стежить за доступністю кожні 60 секунд, повідомляє вас, коли результат змінюється, замість чекати, поки ви подивитеся, і надсилає щомісячний звіт. Коштує $12 на місяць за прайсом, із сімома безкоштовними днями до першого списання; сторінка цін іноді нижча за цифру тут і ніколи не вища. Monitor стежить і більше нічого. Якщо ваш застосунок на Cursor тримає дані в Supabase, Care є тим тарифом, який додатково зберігає копію цієї бази даних, а також ваших завантажених файлів, щойно ви під’єднаєте обліковий запис Storage. Якщо дані живуть деінде, Monitor є тією половиною, яка підходить.
Що зробити цього тижня
Що робити
- Знайдіть Privacy Mode у налаштуваннях Cursor і перевірте, яка версія вибрана. У команді попросіть адміністратора зробити його обов’язковим.
- Вважайте будь-який ключ у відкритій теці проєкту ключем, який агент може прочитати.
.cursorignoreтримає його поза індексом, а термінал цей список не читає. - Читайте як код будь-який файл правил чи конфігурацію MCP, скопійовані з інтернету, і оновлюйте Cursor.
- Відкрийте
/.envі/.git/configна своїй опублікованій адресі в приватному вікні. Обидва мають не відкритися. - Відкрийте свої маршрути API без входу. Будь-який маршрут, що відповідає приватними даними, потребує перевірки входу.
Внутрішня половина всього цього, результат збірки і база даних, є в посібнику з Cursor. А десятихвилинний чекліст безпеки охоплює те, що варто підтвердити в будь-якому щойно запущеному застосунку, хай би що його написало.
Поширені запитання
Чи навчається Cursor на моєму коді?
Лише з вимкненим Privacy Mode. Коли він увімкнений, Cursor заявляє, що дані клієнтів не використовуються для навчання і що він має угоди про нульове зберігання даних з кожним постачальником моделей, тож і з їхнього боку нічого не залишається. Коли він вимкнений, Cursor каже, що може використовувати й зберігати ваш код, промпти та дії в редакторі, щоб покращувати свої функції й навчати свої моделі. Перемикач доступний на кожному тарифі, включно з безкоштовним, і адміністратор команди може ввімкнути його для всіх.
Що насправді робить Privacy Mode?
Він вирішує, що станеться з вашим кодом після того, як на запит відповіли. Ваш код і далі залишає ваш комп’ютер з кожним запитом, бо так працює хмарний редактор. Privacy Mode не дає Cursor навчатися на ньому і зобов’язує постачальників моделей нічого не зберігати. З середини 2025 року є дві версії: поточна дозволяє Cursor зберігати частину даних для функцій на кшталт хмарних агентів і пам’яті, а та, що тепер позначена як Legacy, не зберігає нічого. Якщо ви обрали суворішу, перевірте, чи вона досі вибрана.
Чи безпечне індексування кодової бази?
Індексування надсилає фрагменти вашого проєкту до Cursor, щоб перетворити їх на ембединги, числовий підсумок, який дає йому знайти потрібний файл, коли ви ставите запитання. Cursor каже, що шляхи до файлів шифруються ще до того, як залишать вашу машину, а сам код ніколи не зберігається як читабельний текст, тож на його серверах залишається мапа вашого проєкту. Файли з .gitignore та файли .env пропускаються за замовчуванням, а файл .cursorignore тримає поза індексом усе інше. Застереження стосується термінала: Cursor документує, що агент, виконуючи команду, може прочитати файл, який .cursorignore виключає.
Чи має Cursor сертифікацію SOC 2?
Cursor вказує атестацію SOC 2 Type II на своїй сторінці безпеки, поряд з ISO/IEC 27001 та ISO/IEC 42001. Звіт SOC 2 означає, що зовнішній аудитор перевірив, що компанія має контроль над тим, як вона поводиться з даними, які тримає. Він нічого не каже про те, чи безпечний код, який пише Cursor, і нічого про застосунок, який ви з ним розгорнули, а саме ці два запитання турбують більшість тих, хто набирає «чи безпечний cursor ai».
Чи менш безпечний код, згенерований ШІ, ніж той, що пишу я?
Виміряна відповідь стосується моделей, а не вас. Veracode проганяє 80 завдань з програмування через кожну велику модель, і в кожному завданні є безпечний і небезпечний спосіб виконати роботу; у весняному оновленні 2026 року лише 55 % результатів були безпечними, тоді як понад 95 % компілювалися. Запам’ятати варто саме розрив: код проходить тест, який робите ви, тобто чи він працює, і приблизно в половині випадків він не ухвалив рішення про безпеку, яке ніхто за вас не перевіряє.
Чи безпечний Cursor для роботи з клієнтами?
Це залежить від того, що в договорі з клієнтом сказано про те, куди може йти його код. Cursor надсилає відповідні частини проєкту на свої сервери, а далі постачальнику моделей, з кожним запитом; Privacy Mode змінює те, що зберігається потім, а не те, чи код взагалі кудись іде. Якщо договір дозволяє хмарний інструмент за угодою про нульове зберігання даних, Privacy Mode є тим налаштуванням, яке її вам дає, а на командному тарифі адміністратор може зробити його обов’язковим, щоб ніхто в проєкті не міг його вимкнути.