// docs / baas security / clerk hardening
Clerk қауіпсіздік тізімі: 20 тармақ
Clerk сіздің қолданбаңыз үшін аутентификация, сеанстар және ұйымдарды басқарады — бұл қате конфигурацияланған Clerk интеграциясы аутентификация айналуы, сеанс-бекіту векторы немесе ұйым-ағу жолы екенін білдіреді. Бұл тізім — кілттер, сеанс конфигурациясы, вебхуктар, ұйымдар, JWT үлгілері және үздіксіз бақылау бойынша 20 тармақты аудит. ИИ кодтау құралдары Clerk-ті ақылды әдепкі мәндермен тез қосады; бұл тізім олар үстелде қалдыратын тармақтарды ұстайды.
Аутентификация қабатының қате конфигурацияларының неге ИИ-құрал әлсіз жері екенінің фондық ақпараты үшін ИИ кодтау құралдары неге қауіпсіздік олқылықтарын қалдырады қараңыз. Auth0-да параллель тізім үшін Auth0 қауіпсіздік тізімі қараңыз.
Орта кілттері және шығу тегі ақ тізімі
Clerk жоба бойынша екі бөлек кілт шығарады. Оларды араластыру немесе ағызу — бірінші сәтсіздік режимі.
- Браузерде жариялау кілтін (өндірісте
pk_live_*, әзірлеудеpk_test_*) пайдаланыңыз; серверде ғана құпия кілтті (sk_live_*/sk_test_*) пайдаланыңыз. Жариялау кілтіNEXT_PUBLIC_CLERK_PUBLISHABLE_KEYішінде қауіпсіз; құпия кілт ешқашан жалпыға ортақ env префиксін көтермеуі керек және ешқашан клиент компонентінде пайда болмауы керек. - Өндіріс қолданбасы
pk_test_*емес,pk_live_*пайдаланатынын тексеріңіз. Тест даналары расталмаған электрондық пошта мекенжайларына және өшірілген MFA-ға рұқсат береді — өндіріске тест режимін жіберу — аутентификация айналуы. - Clerk бақылау тақтасында рұқсат етілген шығу тегін конфигурациялаңыз. Settings → Domains → Allowed origins сіздің өндіріс доменіңізді нақты тізуі керек. Бос немесе джокер шығу тегі тізімдері шабуылдаушыларға бэкендіңізбен сөйлесетін жалған Clerk алдыңғы жақтарын жасауға мүмкіндік береді.
- Кету немесе ағу күмән болғанда құпия кілтті айналдырыңыз. Бақылау тақтасы → API Keys → Reset. Ескі кілт жарамсыз болады; айналдыруға дейін жаңа мәнмен сервер жағындағы кодты қайта орналастырыңыз.
Сеанс конфигурациясы
Сеанс аяқталу мерзімі және әрекетсіз күту мерзімдері — ұрланған сеанс 10 минуттық оқиға немесе 30 күндік оқиға болуының арасындағы айырмашылық.
- Сезімтал деректерді өңдейтін SaaS қолданбалары үшін сеанс әрекетсіздік мерзімін 30 минут немесе одан аз етіңіз. Бақылау тақтасы → Sessions → Inactivity timeout. Банк деңгейіндегі қолданбалар 5-10 минут пайдалануы керек; стандартты SaaS 30-60 минут; тұтынушы қолданбалары 1-7 күн. Әдепкі — 7 күн.
- Құпиясөзді өзгерту, электрондық поштаны өзгерту және MFA тіркелуінде сеанс қайтарып алуды қосыңыз. Бақылау тақтасы → Sessions → Revoke on. Бұлар — пайдаланушы бастаған қауіпсіздік оқиғалары; басқа құрылғылардағы бар сеанстар жойылуы керек.
- Сеанстарды әр қорғалған бағытта сервер жағында тексеріңіз, тек кіруде емес. Next.js ішінде: серверлік компонентте / API бағытында
const { userId } = await auth();cookie-ден JWT оқып, оны тексереді. Тек cookie тексеруіне ешқашан сенбеңіз. - Сеанс cookie-де
SameSite=Lax(әдепкі) немесеStrictорнатыңыз. DevTools → Application → Cookies ішінде тексеріңіз.SameSite=None— CSRF векторы — кросс-домен auth орнатуын анық конфигурацияламасаңыз ешқашан пайдаланбаңыз.
Вебхук тексеруі
Clerk вебхуктары пайдаланушы өмір циклі оқиғаларында (жасалды, жаңартылды, жойылды, session.ended) іске қосылады. Олар сіздің дерекқорыңыз үшін синхрондау механизмі — және жалған вебхук — дерекқор-жазу примитиві.
- Әр вебхукта Svix қолтаңбасын тексеріңіз. Clerk вебхуктарына Svix қол қояды.
new Webhook(secret).verify(body, headers)пайдаланыңыз. Тексеру сәтсіз болса401арқылы қабылдамаңыз. - Вебхук құпиясын кодта емес, орта айнымалысында сақтаңыз. Құпия әр бақылау тақтасы қайта генерациясында айналады — сіздің орналастыруыңыз оны env-тен оқуы керек, тұрақтыдан емес.
- Әр өңдеушіде идемпотенттік. Вебхук жеткізулері қайталануы мүмкін. Дубликатсыздыққа арналған
webhook_eventsкестесіндеsvix-idтақырыбын негізгі кілт ретінде пайдаланыңыз. Күй өзгерісі мен идемпотенттік кірістіруді бір транзакцияға орап алыңыз. user.deletedкезінде 24 сағат ішінде PII-ні қатаң жойыңыз немесе анонимдеңіз. GDPR / CCPA оны талап етеді. Жою жолын аудиттеңіз: қандай кестелер осы пайдаланушының деректерін ұстайды? Жасай алатын жерде FK ON DELETE CASCADE пайдаланыңыз.
Ұйымдар және рұқсаттар
Clerk ұйымдарын пайдалансаңыз, ұйым шекарасы — сіздің жалгер оқшаулауыңыз. Әр сервер жағындағы сұрау сол арқылы сүзгілеуі керек.
- Әр API бағытында
auth()ішіненuserIdжәнеorgIdекеуін де оқып, дерекқор сұрауларын екеуімен сүзгілеңіз.WHERE org_id = $orgId AND user_id = $userId. Ешқашан сұрау денесіненorg_idмәніне сенбеңіз. - <strong>Use Clerk role checks for privileged operations, not boolean checks against the user object.</strong> <code>has({ role: 'org:admin' })</code> reads the role from the verified JWT. A user can spoof a boolean on a stale client object; they cannot spoof a JWT claim.
- Кросс-ұйым оқшаулауын екі нақты ұйым тіркелгісімен тексеріңіз. A ұйымын жасап, деректермен толтырыңыз, басқа браузерде B ұйымына кіріп, API арқылы A ұйымының деректерін оқып көріңіз. Жауап
403немесе404болуы керек.
JWT үлгілері және сыртқы интеграциялар
JWT үлгілері Clerk идентификациясын Supabase, Firebase және басқа төменгі ағынды қызметтерге итереді. Қате конфигурацияланған үлгілер талаптарды артық бөліседі немесе сіз көрсеткіңіз келмеген деректерді ашады.
- Әр JWT үлгісі үшін әр талапты тізіп, оның қажет екенін растаңыз. Бақылау тақтасы → JWT Templates. Supabase-ке
emailжәнеphoneжіберетін үлгі браузерде JWT-ны оқитын кез келген адамға PII ашады. - Клиенттік төменгі ағынды шақырулар үшін пайдаланылатын JWT үлгілерінде қысқа аяқталу мерзімін орнатыңыз. Төменгі ағынды API сұраулары үшін 60 секунд — стандарт. Ұзақ өмір сүретін JWT-лер ұрланып, қайта ойналады.
- Қабылдау жағында аудитория (
aud) талабын тексеріңіз. Supabase, Firebase және т.б.audкүтілетін қызмет идентификаторымен сәйкес келетінін тексеруі керек. Онсыз A қызметі үшін шығарылған JWT B қызметіне аутентификациялана алады.
Операциялық бақылау
Аутентификация — сізге қол жетімді ең жоғары сигнал журнал көзі. Оны қараңыз.
- IP / тіркелгі бойынша сәтсіз-кіру секірулеріне ескерту беріңіз. Қалыпты сәтсіздік жылдамдығынан 50× — тіркелгі деректерін толтыру шабуылы. Clerk бұл оқиғаларды вебхуктарға шығарады; оларды SIEM-ге бағыттаңыз.
- Сеанс және дана параметрлерінің ауысуын тоқсан сайын қарап шығу. Clerk жаңартқан сайын әдепкі мәндер өзгереді; "ескі конфигурациялар" уақыт өте келе үнсіз қате болады. Бақылау тақтасы JSON экспортын соңғы белгілі-жақсы көшірмемен айырыңыз.
Келесі қадамдар
Өндіріс URL мекенжайыңызға қарсы FixVibe сканерлеуін іске қосыңыз — baas.clerk-auth0 тексеруі Clerk жариялау кілттерін, өндірістегі тест кілттерін және бумалы құпия кілттерді белгілейді. Auth0-да параллель тізім үшін Auth0 қауіпсіздік тізімі қараңыз. BaaS провайдерлерінен шатыр көрінісі үшін BaaS қате конфигурациясының сканері оқыңыз.
