БпСстСтС 15% ΠΎΡ‚ всички хостинг услуги

ВСствай умСнията си ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈ ΠžΡ‚ΡΡ‚ΡŠΠΏΠΊΠ° Π·Π° всСки хостинг ΠΏΠ»Π°Π½

Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ΄: Skills Π—Π° Π½Π°Ρ‡Π°Π»ΠΎ
Заглавия
Администрация Π—Π°Ρ‰ΠΈΡ‚Π°

HTTP 401 Unauthorized Π“Ρ€Π΅ΡˆΠΊΠ°: Пълно Π ΡŠΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎ Π·Π° Диагностика ΠΈ ΠžΡ‚ΡΡ‚Ρ€Π°Π½ΡΠ²Π°Π½Π΅

ΠšΠΎΠ΄ΡŠΡ‚ Π·Π° статус HTTP 401 Unauthorized ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» Π²Π°ΡˆΠ°Ρ‚Π° заявка, Π½ΠΎ ΠΎΡ‚ΠΊΠ°Π·Π²Π° Π΄Π° я ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΈ, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ Π²Π°Π»ΠΈΠ΄Π½ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° удостовСряванС ΠΈΠ»ΠΈ липсват, ΠΈΠ»ΠΈ са Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΈ, ΠΈΠ»ΠΈ са ΠΈΠ·Ρ‚Π΅ΠΊΠ»ΠΈ. Π—Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ Π³Ρ€Π΅ΡˆΠΊΠ° 403 Forbidden β€” ΠΏΡ€ΠΈ която ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ Π²ΠΈ Ρ€Π°Π·ΠΏΠΎΠ·Π½Π°Π²Π°, Π½ΠΎ ΠΎΡ‚ΠΊΠ°Π·Π²Π° Π΄ΠΎΡΡ‚ΡŠΠΏ въз основа Π½Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ β€” 401 ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ сигнализира Π·Π° Π½Π΅ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ удостовСряванС: ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ Π½Π΅ Π·Π½Π°Π΅ ΠΊΠΎΠΉ стС Π²ΠΈΠ΅ ΠΈΠ»ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΎ ΠΏΠΎΡ‚Π²ΡŠΡ€Π΄ΠΈ.

Π’ΠΎΠ²Π° Ρ€Π°Π·Π³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π΅ Π²Π°ΠΆΠ½ΠΎ. ΠžΡ‚Π³ΠΎΠ²ΠΎΡ€ΡŠΡ‚ 401 Π²ΠΈΠ½Π°Π³ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π²Π° Π·Π°Π³Π»Π°Π²ΠΊΠ° WWW-Authenticate Π² ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π° Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°, инструктирайки ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° коя схСма Π·Π° удостовСряванС Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°. Ако Ρ‚Π°Π·ΠΈ Π·Π°Π³Π»Π°Π²ΠΊΠ° липсва, ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΡΠ±Π»ΡŠΡΠΊΠ²Π°Ρ‚Π΅ с Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ ΡΡŠΡ€Π²ΡŠΡ€, Π° Π½Π΅ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ. ΠŸΠΎΠ·Π½Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° точния Ρ€Π΅ΠΆΠΈΠΌ Π½Π° нСуспСх ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅ отстраняванС Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ спСстява Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅.

Как ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° дСйствитСлно ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ 401

Π“Ρ€Π΅ΡˆΠΊΠ°Ρ‚Π° сС появява ΠΏΠΎΠ΄ няколко Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π½Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ Π² зависимост ΠΎΡ‚ ΡΡŠΡ€Π²ΡŠΡ€Π½ΠΈΡ софтуСр, Ρ€Π°ΠΌΠΊΠ°Ρ‚Π° ΠΈΠ»ΠΈ CDN ΠΏΡ€Π΅Π΄ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ:

  • 401 Unauthorized
  • HTTP Error 401 – Unauthorized
  • 401 Unauthorized: Access is denied due to invalid credentials
  • Authorization Required
  • 401 Authorization Required (чСсто срСщано Π² NGINX)
    HTTP 401 (API ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ, Postman, curl)
    
    Всички Ρ‚Π΅ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π°Ρ‚ Π½Π° Π΅Π΄ΠΈΠ½ ΠΈ ΡΡŠΡ‰ΠΈ ΠΊΠΎΠ΄ Π·Π° статус, Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ ΠΎΡ‚ RFC 9110. Вариацията Π² Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ‚Π° Π΅ чисто ΠΊΠΎΠ·ΠΌΠ΅Ρ‚ΠΈΡ‡Π½Π° β€” ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° ΠΎΡ‚ ΡƒΠ΅Π± ΡΡŠΡ€Π²ΡŠΡ€Π°, обратния прокси ΠΈΠ»ΠΈ Ρ€Π°ΠΌΠΊΠ°Ρ‚Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Ρ‰Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π°.
    ВСхничСската анатомия Π½Π° Π³Ρ€Π΅ΡˆΠΊΠ° 401
    Π Π°Π·Π±ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ сС случва Π½Π° Π½ΠΈΠ²ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», прСдотвратява Π³Π°Π΄Π°Π΅Π½Π΅Ρ‚ΠΎ. ΠšΠΎΠ³Π°Ρ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° заявка Π΄ΠΎ Π·Π°Ρ‰ΠΈΡ‚Π΅Π½ рСсурс Π±Π΅Π· ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ, ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ отговаря с:
    HTTP/1.1 401 Unauthorized
    WWW-Authenticate: Bearer realm="example", error="invalid_token"
    Content-Type: application/json
    Π—Π°Π³Π»Π°Π²ΠΊΠ°Ρ‚Π° WWW-Authenticate Π΅ прСдизвикатСлството Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°. Вя ΠΊΠ°Π·Π²Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Ρ‚ΠΎΡ‡Π½ΠΎ коя схСма β€” Basic, Bearer, Digest, NTLM ΠΈΠ»ΠΈ пСрсонализирана схСма β€” Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°. ΠšΠ»ΠΈΠ΅Π½Ρ‚, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€Π° Ρ‚Π°Π·ΠΈ Π·Π°Π³Π»Π°Π²ΠΊΠ° ΠΈ повтаря заявката Π±Π΅Π· Π΄Π° ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π° своята заявка, Ρ‰Π΅ сС Π²ΡŠΡ€Ρ‚ΠΈ Π² Π±Π΅Π·ΠΊΡ€Π°Π΅Π½ Ρ†ΠΈΠΊΡŠΠ».
    401 срСщу 403 срСщу 407: ПознаванС Π½Π° Ρ€Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π°
    
    
    
    Код Π·Π° статус
    НаимСнованиС
    Основна ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°
    Π—Π°Π³Π»Π°Π²ΠΊΠ° `WWW-Authenticate`
    
    
    
    
    
    
    
    
    —
    —
    —
    —
    
    
    
    
    
    
    
    
    401
    Unauthorized
    Липсващи ΠΈΠ»ΠΈ Π½Π΅Π²Π°Π»ΠΈΠ΄Π½ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° удостовСряванС
    Изисква сС ΠΎΡ‚ спСцификацията
    
    
    
    
    
    
    
    
    403
    Forbidden
    УдостовСрСн, Π½ΠΎ липсват Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ
    НС ΠΏΡ€ΠΈΡΡŠΡΡ‚Π²Π°
    
    
    
    
    
    
    
    
    407
    Proxy Auth Required
    ΠŸΡ€ΠΎΠΊΡΠΈ ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ изисква ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ
    Π—Π°Π³Π»Π°Π²ΠΊΠ° `Proxy-Authenticate`
    
    
    
    
    
    
    
    
    511
    Network Auth Required
    Captive portal (хотСлски Wi-Fi ΠΈ Π΄Ρ€.)
    НСприлоТимо
    
    
    
    
    
    ΠŸΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡ‚ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½Π΅ Π½Π° 403 ΠΊΠ°Ρ‚ΠΎ 401 Π΅ чСста Π³Ρ€Π΅ΡˆΠΊΠ° Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅. Ако Π²Π°ΡˆΠΈΡΡ‚ ΡΡŠΡ€Π²ΡŠΡ€ Π²Ρ€ΡŠΡ‰Π° 401, Π½ΠΎ пропуска WWW-Authenticate, Ρ‚ΠΎΠΉ тСхничСски Π½Π΅ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π° Π½Π° RFC 9110 β€” ΠΈ някои строги HTTP ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ Ρ‰Π΅ Ρ‚Ρ€Π΅Ρ‚ΠΈΡ€Π°Ρ‚ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π° ΠΊΠ°Ρ‚ΠΎ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€Π°Π½.
    Основни ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈ Π·Π° Π³Ρ€Π΅ΡˆΠΊΠ° 401 Unauthorized
    ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ Ρ‚ΠΎΠΊΠ΅Π½ΠΈ
    
    НСправилно потрСбитСлско ΠΈΠΌΠ΅ ΠΈΠ»ΠΈ ΠΏΠ°Ρ€ΠΎΠ»Π° β€” Π½Π°ΠΉ-чСстата ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Ρ‡Ρ€Π΅Π· Π±Ρ€Π°ΡƒΠ·ΡŠΡ€
    Π˜Π·Ρ‚Π΅ΠΊΠ»ΠΈ Ρ‚ΠΎΠΊΠ΅Π½ΠΈ Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ β€” Bearer Ρ‚ΠΎΠΊΠ΅Π½ΠΈΡ‚Π΅ Π½Π° OAuth 2.0 ΠΈΠΌΠ°Ρ‚ ΠΊΡ€Π°ΠΉΠ½Π° стойност expires_in; слСд ΠΈΠ·Ρ‚ΠΈΡ‡Π°Π½Π΅Ρ‚ΠΎ ΠΉ всяка заявка Π²Ρ€ΡŠΡ‰Π° 401, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Ρ‚ΠΎΠΊΠ΅Π½ΡŠΡ‚ Π½Π΅ бъдС ΠΎΠ±Π½ΠΎΠ²Π΅Π½
    ΠžΡ‚ΠΌΠ΅Π½Π΅Π½ΠΈ API ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ β€” ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅Ρ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π°Π½ΡƒΠ»ΠΈΡ€Π°Π½ΠΈ ΠΎΡ‚ страна Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° Π±Π΅Π· ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ Π΄Π° бъдС ΡƒΠ²Π΅Π΄ΠΎΠΌΠ΅Π½
    ΠΠ΅ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ Π½Π° JWT подпис β€” Π°ΠΊΠΎ тайният ΠΊΠ»ΡŽΡ‡ Π·Π° подписванС сС смСни ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ ΠΏΡ€ΠΈΡ‚Π΅ΠΆΠ°Π²Π° Ρ‚ΠΎΠΊΠ΅Π½, подписан със стария ΠΊΠ»ΡŽΡ‡, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π° сС проваля Π±Π΅Π·ΡˆΡƒΠΌΠ½ΠΎ
    Π Π°Π·ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ Π½Π° часовника β€” JWT Π²ΠΊΠ»ΡŽΡ‡Π²Π°Ρ‚ Ρ‚Π²ΡŠΡ€Π΄Π΅Π½ΠΈΡ iat (ΠΈΠ·Π΄Π°Π΄Π΅Π½ Π²) ΠΈ exp (ΠΈΠ·Ρ‚ΠΈΡ‡Π°Π½Π΅), Π²Π°Π»ΠΈΠ΄ΠΈΡ€Π°Π½ΠΈ спрямо Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°; часовник Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚, измСстСн с ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ няколко ΠΌΠΈΠ½ΡƒΡ‚ΠΈ, ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΠΎΡ‚Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅ Π½Π° Π²Π°Π»ΠΈΠ΄Π½ΠΈ Ρ‚ΠΎΠΊΠ΅Π½ΠΈ
    
    Липсващи ΠΈΠ»ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€Π°Π½ΠΈ Π·Π°Π³Π»Π°Π²ΠΊΠΈ Π·Π° оторизация
    Всяка схСма Π·Π° удостовСряванС ΠΈΠΌΠ° Ρ‚ΠΎΡ‡Π΅Π½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π½Π° Π·Π°Π³Π»Π°Π²ΠΊΠ°Ρ‚Π°. ΠžΡ‚ΠΊΠ»ΠΎΠ½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΎΡ‚ Π½Π΅Π³ΠΎ β€” Π΄ΠΎΡ€ΠΈ с Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» ΠΈΠ»ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ Base64 запълванС β€” ΠΏΡ€ΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π° 401:
    # Correct Basic Auth header
    Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
    
    # Correct Bearer token header
    Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...
    ЧСста Π³Ρ€Π΅ΡˆΠΊΠ° Π΅ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅Ρ‚ΠΎ Π½Π° Authorization: bearer <token> (ΠΌΠ°Π»ΠΊΠΈ Π±ΡƒΠΊΠ²ΠΈ b). Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ RFC 6750 посочва, Ρ‡Π΅ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° схСмата Π΅ нСчувствитСлно към Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€Π°, ΠΌΠ½ΠΎΠ³ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΎΡ‚ страна Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Ρ‚ стриктно съвпадСниС Π½Π° Π½ΠΈΠ·ΠΎΠ²Π΅ ΠΈ ΠΎΡ‚Ρ…Π²ΡŠΡ€Π»ΡΡ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° с ΠΌΠ°Π»ΠΊΠΈ Π±ΡƒΠΊΠ²ΠΈ.
    НСправилна конфигурация ΠΎΡ‚ страна Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°
    
    НалоТСн Π³Ρ€Π΅ΡˆΠ΅Π½ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π° удостовСряванС β€” ΡΡŠΡ€Π²ΡŠΡ€, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ Π·Π° OAuth 2.0, ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Ρ‰ Π·Π°Π³Π»Π°Π²ΠΊΠΈ Π·Π° Basic Auth, Ρ‰Π΅ Π³ΠΈ ΠΎΡ‚Ρ…Π²ΡŠΡ€Π»ΠΈ
    Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΈ .htaccess β€” ΠΏΡ€ΠΈ Apache, Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° AuthType, AuthName ΠΈΠ»ΠΈ Require Π² .htaccess Ρ‰Π΅ постави всяка заявка Π·Π°Π΄ ΠΏΠΎΠ΄ΠΊΠ°Π½Π° Π·Π° ΠΏΠ°Ρ€ΠΎΠ»Π°
    Π‘Π»ΠΎΠΊΠΎΠ²Π΅ auth_basic Π½Π° NGINX β€” Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° auth_basic, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½Π° към Π³Ρ€Π΅ΡˆΠ½ΠΈΡ Π±Π»ΠΎΠΊ location, ΠΌΠΎΠΆΠ΅ Π΄Π° Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈ Π»Π΅Π³ΠΈΡ‚ΠΈΠΌΠ½ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ
    ΠžΠ±Ρ€Π°Ρ‚Π΅Π½ прокси, ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Ρ‰ Π·Π°Π³Π»Π°Π²ΠΊΠΈ β€” Π±Π°Π»Π°Π½ΡΡŒΠΎΡ€ΠΈΡ‚Π΅ Π½Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΈΡ‚Π΅ прокси (NGINX, HAProxy, Cloudflare) ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Ρ‚ ΠΈΠ»ΠΈ прСнаписват Π·Π°Π³Π»Π°Π²ΠΊΠΈ Authorization ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° достигнат Π΄ΠΎ изходния ΡΡŠΡ€Π²ΡŠΡ€
    
    НамСса ΠΎΡ‚ страна Π½Π° Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π° ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°
    
    ΠŸΠΎΠ²Ρ€Π΅Π΄Π΅Π½ΠΈ бисквитки β€” сСсийнитС бисквитки, носСщи ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° удостовСряванС, ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС поврСдят ΠΈΠ»ΠΈ Π΄Π° Π½Π΅ ΡΡŠΠ²ΠΏΠ°Π΄Π°Ρ‚ слСд Π°Π½ΡƒΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° сСсия ΠΎΡ‚ страна Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°
    АгрСсивни Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ Π½Π° Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π° β€” Π±Π»ΠΎΠΊΠ΅Ρ€ΠΈ Π½Π° Ρ€Π΅ΠΊΠ»Π°ΠΌΠΈ, Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ Π·Π° повСритСлност ΠΈ VPN Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Ρ‚ ΠΈΠ»ΠΈ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Ρ‚ Π·Π°Π³Π»Π°Π²ΠΊΠΈΡ‚Π΅ Π½Π° заявкитС
    НСуспСхи ΠΏΡ€ΠΈ CORS ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° β€” ΠΏΡ€ΠΈ крос-ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈ API извиквания, Π±Ρ€Π°ΡƒΠ·ΡŠΡ€ΡŠΡ‚ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½Π° заявка OPTIONS; Π°ΠΊΠΎ ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ Π½Π΅ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ Π½Π° нСя, дСйствитСлната удостовСрСна заявка Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°
    
    Π˜Π½Ρ„Ρ€Π°ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π½ΠΈ ΠΈ ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈ
    
    ΠŸΡ€Π°Π²ΠΈΠ»Π° Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π½Π°Ρ‚Π° стСна, Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‰ΠΈ ΠΊΡ€Π°ΠΉΠ½ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ Π·Π° удостовСряванС β€” WAF (Web Application Firewalls) с ΠΏΡ€Π΅ΠΊΠ°Π»Π΅Π½ΠΎ агрСсивни ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Ρ‚ ΠΈ ΠΎΡ‚Ρ…Π²ΡŠΡ€Π»ΡΡ‚ заявки, ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‰ΠΈ Π·Π°Π³Π»Π°Π²ΠΊΠΈ Authorization, ΠΊΠ°Ρ‚ΠΎ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Π½ΠΈ Π°Ρ‚Π°ΠΊΠΈ с ΠΈΠ½ΠΆΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½Π΅
    CDN ΠΊΠ΅ΡˆΠΈΡ€Π° удостовСрСни ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈ β€” Π°ΠΊΠΎ CDN ΠΊΠ΅ΡˆΠΈΡ€Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ 401 ΠΈ Π³ΠΎ обслуТва Π½Π° слСдващи ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ, Π΄ΠΎΡ€ΠΈ Π²Π°Π»ΠΈΠ΄Π½ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ Ρ‰Π΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°Ρ‚ Π½Π΅ΡƒΡΠΏΠ΅ΡˆΠ½ΠΈ
    ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° скоростта Π±Π°Π·ΠΈΡ€Π°Π½ΠΎ Π½Π° IP β€” повтарящи сС Π½Π΅ΡƒΡΠΏΠ΅ΡˆΠ½ΠΈ ΠΎΠΏΠΈΡ‚ΠΈ Π·Π° удостовСряванС ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° задСйстват Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π±Π»ΠΎΠΊΠΈΡ€Π°Π½Π΅, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²Ρ€ΡŠΡ‰Π° 401 Π·Π° всички заявки ΠΎΡ‚ Ρ‚ΠΎΠ·ΠΈ IP
    
    Как Π΄Π° ΠΏΠΎΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π³Ρ€Π΅ΡˆΠΊΠ° 401: Π‘Ρ‚ΡŠΠΏΠΊΠ° ΠΏΠΎ ΡΡ‚ΡŠΠΏΠΊΠ°
    Π—Π° ΠΊΡ€Π°ΠΉΠ½ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏ Ρ‡Ρ€Π΅Π· Π±Ρ€Π°ΡƒΠ·ΡŠΡ€
    Π‘Ρ‚ΡŠΠΏΠΊΠ° 1: ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎ
    ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅ Π΄Π°Π»ΠΈ Caps Lock Π΅ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½. ΠŸΠΎΡ‚Π²ΡŠΡ€Π΄Π΅Ρ‚Π΅, Ρ‡Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° ΠΏΠ°Ρ€ΠΎΠ»Π° β€” Π½Π΅ Ρ‚Π°ΠΊΠ°Π²Π°, Π·Π°ΠΏΠ°Π·Π΅Π½Π° ΠΏΡ€Π΅Π΄ΠΈ ΡΠΊΠΎΡ€ΠΎΡˆΠ½ΠΎ Π½ΡƒΠ»ΠΈΡ€Π°Π½Π΅. Ако Π²Π°ΡˆΠΈΡΡ‚ Π°ΠΊΠ°ΡƒΠ½Ρ‚ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΌΠ½ΠΎΠ³ΠΎΡ„Π°ΠΊΡ‚ΠΎΡ€Π½ΠΎ удостовСряванС (MFA), ΡƒΠ²Π΅Ρ€Π΅Ρ‚Π΅ сС, Ρ‡Π΅ Сднократният ΠΊΠΎΠ΄ Π½Π΅ Π΅ ΠΈΠ·Ρ‚Π΅ΠΊΡŠΠ» (TOTP ΠΊΠΎΠ΄ΠΎΠ²Π΅Ρ‚Π΅ са Π²Π°Π»ΠΈΠ΄Π½ΠΈ Π·Π° 30 сСкунди ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅).
    Π‘Ρ‚ΡŠΠΏΠΊΠ° 2: Π˜Π·Ρ‡ΠΈΡΡ‚Π΅Ρ‚Π΅ бисквиткитС ΠΈ кСша Π½Π° Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π°
    ΠžΡΡ‚Π°Ρ€Π΅Π»ΠΈΡ‚Π΅ сСсийни бисквитки са постоянСн ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ Π½Π° 401 Ρ†ΠΈΠΊΠ»ΠΈ. Π’ Chrome, Π½Π°Π²ΠΈΠ³ΠΈΡ€Π°ΠΉΡ‚Π΅ Π΄ΠΎ chrome://settings/clearBrowserData, Π·Π°Π΄Π°ΠΉΡ‚Π΅ врСмСвия Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π½Π° Всички Π²Ρ€Π΅ΠΌΠ΅Π½Π°, ΠΎΡ‚ΠΌΠ΅Ρ‚Π½Π΅Ρ‚Π΅ Бисквитки ΠΈ Π΄Π°Π½Π½ΠΈ Π½Π° сайтовС ΠΈ ΠšΠ΅ΡˆΠΈΡ€Π°Π½ΠΈ изобраТСния ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ изчистСтС. Π’ Firefox, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ about:preferences#privacy ΠΈ ΠΊΠ»ΠΈΠΊΠ½Π΅Ρ‚Π΅ Π˜Π·Ρ‡ΠΈΡΡ‚ΠΈ Π΄Π°Π½Π½ΠΈΡ‚Π΅.
    Π‘Π»Π΅Π΄ изчистванСто, Π·Π°Ρ‚Π²ΠΎΡ€Π΅Ρ‚Π΅ всички Ρ€Π°Π·Π΄Π΅Π»ΠΈ Π½Π° Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π° Π·Π° засСгнатия Π΄ΠΎΠΌΠ΅ΠΉΠ½ ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° ΠΎΠΏΠΈΡ‚Π°Ρ‚Π΅ ΠΎΡ‚Π½ΠΎΠ²ΠΎ β€” някои Π±Ρ€Π°ΡƒΠ·ΡŠΡ€ΠΈ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‚ сСсийно ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ оцСлява ΠΏΡ€ΠΈ изчистванС Π½Π° кСша, Π°ΠΊΠΎ Ρ€Π°Π·Π΄Π΅Π»ΡŠΡ‚ останС ΠΎΡ‚Π²ΠΎΡ€Π΅Π½.
    Π‘Ρ‚ΡŠΠΏΠΊΠ° 3: ВСствайтС Π² ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ† Π·Π° ΠΏΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ/ΠΈΠ½ΠΊΠΎΠ³Π½ΠΈΡ‚ΠΎ ΡΡŠΡ€Ρ„ΠΈΡ€Π°Π½Π΅
    ΠŸΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ†ΡŠΡ‚ Π·Π° ΠΏΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ ΡΡŠΡ€Ρ„ΠΈΡ€Π°Π½Π΅ стартира Π±Π΅Π· бисквитки, Π±Π΅Π· ΠΊΠ΅ΡˆΠΈΡ€Π°Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ с ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ΠΈ. Ако 401 ΠΈΠ·Ρ‡Π΅Π·Π½Π΅ Π² Ρ€Π΅ΠΆΠΈΠΌ ΠΈΠ½ΠΊΠΎΠ³Π½ΠΈΡ‚ΠΎ, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ‡Π½ΠΎ ΠΎΡ‚ страна Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°: ΠΈΠ»ΠΈ ΠΏΠΎΠ²Ρ€Π΅Π΄Π΅Π½Π° бисквитка, ΠΈΠ»ΠΈ ΠΊΠ΅ΡˆΠΈΡ€Π°Π½ лош ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€, ΠΈΠ»ΠΈ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Π½Π° Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π°.
    Π‘Ρ‚ΡŠΠΏΠΊΠ° 4: Π”Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°ΠΉΡ‚Π΅ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡΡ‚Π° ΠΈΠ·Π±ΠΈΡ€Π°Ρ‚Π΅Π»Π½ΠΎ
    НавигирайтС Π΄ΠΎ chrome://extensions/ ΠΈ Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°ΠΉΡ‚Π΅ всички Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ. ΠŸΡ€Π΅Π·Π°Ρ€Π΅Π΄Π΅Ρ‚Π΅ страницата. Ако удостовСряванСто успСС, Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°ΠΉΡ‚Π΅ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡΡ‚Π° Π΅Π΄Π½ΠΎ ΠΏΠΎ Π΅Π΄Π½ΠΎ, Π·Π° Π΄Π° ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Ρ‚Π΅ Π²ΠΈΠ½ΠΎΠ²Π½ΠΈΠΊΠ°. Privacy Badger, uMatrix ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ VPN Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ са чСсти Π½Π°Ρ€ΡƒΡˆΠΈΡ‚Π΅Π»ΠΈ.
    Π‘Ρ‚ΡŠΠΏΠΊΠ° 5: ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅ URL адрСса Π·Π° Π³Ρ€Π΅ΡˆΠΊΠΈ
    Π£Π²Π΅Ρ€Π΅Ρ‚Π΅ сС, Ρ‡Π΅ Π½Π΅ Π½Π°Π²ΠΈΠ³ΠΈΡ€Π°Ρ‚Π΅ към ΠΏΡŠΡ‚, изискващ повишСни Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. URL адрСс ΠΊΠ°Ρ‚ΠΎ /admin/dashboard Ρ‰Π΅ Π²ΡŠΡ€Π½Π΅ 401, Π°ΠΊΠΎ Π²Π°ΡˆΠ°Ρ‚Π° сСсия няма администраторски ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ β€” Π΄ΠΎΡ€ΠΈ Π°ΠΊΠΎ основното Π²ΠΈ Π²Π»ΠΈΠ·Π°Π½Π΅ Π΅ Π²Π°Π»ΠΈΠ΄Π½ΠΎ. ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅ точния ΠΏΡŠΡ‚ ΠΏΡ€ΠΈ собствСника Π½Π° сайта ΠΈΠ»ΠΈ докумСнтацията.
    Π‘Ρ‚ΡŠΠΏΠΊΠ° 6: НулирайтС ΠΏΠ°Ρ€ΠΎΠ»Π°Ρ‚Π° си
    Ако сС ΠΏΠΎΠ΄ΠΎΠ·ΠΈΡ€Π° ΠΈΠ·Ρ‚ΠΈΡ‡Π°Π½Π΅ Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠ° Π—Π°Π±Ρ€Π°Π²Π΅Π½Π° ΠΏΠ°Ρ€ΠΎΠ»Π°. Π‘Π»Π΅Π΄ Π½ΡƒΠ»ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ, изчистСтС бисквиткитС ΠΎΡ‚Π½ΠΎΠ²ΠΎ ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° ΠΎΠΏΠΈΡ‚Π°Ρ‚Π΅ Π²Π»ΠΈΠ·Π°Π½Π΅ β€” старата сСсийна бисквитка ΠΌΠΎΠΆΠ΅ Π΄Π° Π²Π»Π΅Π·Π΅ Π² ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ с Π½ΠΎΠ²ΠΎΡ‚ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ.
    Π—Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ ΠΈ API ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ
    Π‘Ρ‚ΡŠΠΏΠΊΠ° 7: ΠŸΡ€Π΅Π³Π»Π΅Π΄Π°ΠΉΡ‚Π΅ суровия HTTP ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€
    ΠŸΡ€Π΅Π΄ΠΈ Π΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΊΠ°ΠΊΠ²ΠΎΡ‚ΠΎ ΠΈ Π΄Π° Π΅, ΡƒΠ»ΠΎΠ²Π΅Ρ‚Π΅ точния ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ curl с ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π΅Π½ ΠΈΠ·Ρ…ΠΎΠ΄:
    curl -v -H "Authorization: Bearer YOUR_TOKEN" https://api.example.com/endpoint
    Π€Π»Π°Π³ΡŠΡ‚ -v ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΈ ΠΈΠ·ΠΏΡ€Π°Ρ‚Π΅Π½ΠΈΡ‚Π΅ Π·Π°Π³Π»Π°Π²ΠΊΠΈ Π½Π° заявката, ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡ‚Π΅ Π·Π°Π³Π»Π°Π²ΠΊΠΈ Π½Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π°, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ прСдизвикатСлството WWW-Authenticate. Π’ΠΎΠ²Π° Π²ΠΈ ΠΊΠ°Π·Π²Π° Ρ‚ΠΎΡ‡Π½ΠΎ коя схСма ΠΎΡ‡Π°ΠΊΠ²Π° ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚.
    Π‘Ρ‚ΡŠΠΏΠΊΠ° 8: Π’Π°Π»ΠΈΠ΄ΠΈΡ€Π°ΠΉΡ‚Π΅ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ‚ΠΎΠΊΠ΅Π½Π°
    Π—Π° JWT Ρ‚ΠΎΠΊΠ΅Π½ΠΈ, Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€Π°ΠΉΡ‚Π΅ полСзния Ρ‚ΠΎΠ²Π°Ρ€ Π±Π΅Π· Π΄Π° провСряватС подписа, Π·Π° Π΄Π° ΠΏΡ€Π΅Π³Π»Π΅Π΄Π°Ρ‚Π΅ Ρ‚Π²ΡŠΡ€Π΄Π΅Π½ΠΈΡΡ‚Π°:
    echo "YOUR_JWT_PAYLOAD_BASE64" | base64 --decode | python3 -m json.tool
    ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅ ΠΏΠΎΠ»Π΅Ρ‚ΠΎ exp (Unix Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚). Π‘Ρ€Π°Π²Π½Π΅Ρ‚Π΅ Π³ΠΎ с Ρ‚Π΅ΠΊΡƒΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅:
    date +%s
    Ако exp Π΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ‚ тСкущия Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚, Ρ‚ΠΎΠΊΠ΅Π½ΡŠΡ‚ Π΅ ΠΈΠ·Ρ‚Π΅ΠΊΡŠΠ». Π’Π½Π΅Π΄Ρ€Π΅Ρ‚Π΅ ΠΏΠΎΡ‚ΠΎΠΊ Π·Π° обновяванС, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΊΡ€Π°ΠΉΠ½Π°Ρ‚Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π·Π° Ρ‚ΠΎΠΊΠ΅Π½ΠΈ Π½Π° вашия OAuth доставчик, ΠΏΡ€Π΅Π΄ΠΈ Ρ‚ΠΎΠΊΠ΅Π½ΡŠΡ‚ Π΄Π° достигнС ΠΈΠ·Ρ‚ΠΈΡ‡Π°Π½Π΅.
    Π‘Ρ‚ΡŠΠΏΠΊΠ° 9: ΠžΠ΄ΠΈΡ‚ΠΈΡ€Π°ΠΉΡ‚Π΅ конфигурацията Π·Π° удостовСряванС ΠΎΡ‚ страна Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°
    ΠŸΡ€ΠΈ Apache, ΠΏΡ€Π΅Π³Π»Π΅Π΄Π°ΠΉΡ‚Π΅ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈΡ .htaccess ΠΈΠ»ΠΈ конфигурацията Π½Π° виртуалния хост:
    AuthType Basic
    AuthName "Restricted Area"
    AuthUserFile /etc/apache2/.htpasswd
    Require valid-user
    ΠŸΠΎΡ‚Π²ΡŠΡ€Π΄Π΅Ρ‚Π΅, Ρ‡Π΅ ΠΏΡŠΡ‚ΡΡ‚ AuthUserFile ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° ΠΈ Π΅ Ρ‡Π΅Ρ‚ΠΈΠΌ ΠΎΡ‚ процСса Π½Π° ΡƒΠ΅Π± ΡΡŠΡ€Π²ΡŠΡ€Π°. ΠŸΡ€ΠΈ NGINX, ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈΡ Π±Π»ΠΎΠΊ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° ΠΈΠ»ΠΈ мСстополоТСниСто:
    location /secure/ {
        auth_basic "Restricted";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }
    ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅ Π΄Π°Π»ΠΈ Ρ„Π°ΠΉΠ»ΡŠΡ‚ .htpasswd ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΈΡ‚Π΅ Ρ…Π΅ΡˆΠΈΡ€Π°Π½ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ htpasswd -v /etc/nginx/.htpasswd username, Π·Π° Π΄Π° тСстватС ΠΏΠ°Ρ€ΠΎΠ»Π° спрямо ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΡ Ρ…Π΅Ρˆ.
    Π‘Ρ‚ΡŠΠΏΠΊΠ° 10: ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅ ΡΡŠΡ€Π²ΡŠΡ€Π½ΠΈΡ‚Π΅ ΠΆΡƒΡ€Π½Π°Π»ΠΈ
    Π‘ΡŠΡ€Π²ΡŠΡ€Π½ΠΈΡ‚Π΅ ΠΆΡƒΡ€Π½Π°Π»ΠΈ прСдоставят истинската информация. ΠŸΡ€ΠΈ Apache:
    tail -f /var/log/apache2/error.log | grep 401
    ΠŸΡ€ΠΈ NGINX:
    tail -f /var/log/nginx/error.log | grep 401
    Π—Π° удостовСряванС Π½Π° Π½ΠΈΠ²ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (Node.js, Django, Laravel), ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅ собствСния ΠΈΠ·Ρ…ΠΎΠ΄ Π½Π° ΠΆΡƒΡ€Π½Π°Π»Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ. Π—Π°ΠΏΠΈΡΡŠΡ‚ Π² ΠΆΡƒΡ€Π½Π°Π»Π° чСсто Ρ‰Π΅ посочи Π΄Π°Π»ΠΈ Π½Π΅ΡƒΡΠΏΠ΅Ρ…ΡŠΡ‚ Π΅ Π±ΠΈΠ» липсваща Π·Π°Π³Π»Π°Π²ΠΊΠ°, Π½Π΅Π²Π°Π»ΠΈΠ΄Π΅Π½ Ρ‚ΠΎΠΊΠ΅Π½ ΠΈΠ»ΠΈ нСуспСх ΠΏΡ€ΠΈ Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ Π² Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ.
    Π‘Ρ‚ΡŠΠΏΠΊΠ° 11: ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅ ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‰Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π·Π°Π³Π»Π°Π²ΠΊΠΈ ΠΎΡ‚ обратния прокси
    Ако Π²Π°ΡˆΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ сС Π½Π°ΠΌΠΈΡ€Π° Π·Π°Π΄ NGINX, дСйстващ ΠΊΠ°Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Ρ‚Π΅Π½ прокси, ΡƒΠ²Π΅Ρ€Π΅Ρ‚Π΅ сС, Ρ‡Π΅ Π·Π°Π³Π»Π°Π²ΠΊΠ°Ρ‚Π° Authorization сС ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‰Π° към ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π°Π³ΠΎΡ€Π΅ ΠΏΠΎ Π²Π΅Ρ€ΠΈΠ³Π°Ρ‚Π°:
    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Authorization $http_authorization;
        proxy_pass_header Authorization;
    }
    Π‘Π΅Π· proxy_pass_header Authorization, NGINX ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π° Π·Π°Π³Π»Π°Π²ΠΊΠ°Ρ‚Π° ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° достигнС Π΄ΠΎ вашия ΡΡŠΡ€Π²ΡŠΡ€ Π½Π° прилоТСния β€” причинявайки 401, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΊΠ°Ρ‚ΠΎ Π³Ρ€Π΅ΡˆΠΊΠ° Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Π½ΠΎ Π΅ изцяло ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅Π½ ΠΎΡ‚ инфраструктурата.
    Π‘Ρ‚ΡŠΠΏΠΊΠ° 12: ΠŸΡ€Π΅Π³Π»Π΅Π΄Π°ΠΉΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π° Π½Π° WAF ΠΈ Π·Π°Ρ‰ΠΈΡ‚Π½Π°Ρ‚Π° стСна
    Ако ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ WAF (ModSecurity, Cloudflare WAF, AWS WAF), ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅ Π΄Π°Π»ΠΈ някоС ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ съвпада ΠΈ Π±Π»ΠΎΠΊΠΈΡ€Π° заявки, ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‰ΠΈ Π·Π°Π³Π»Π°Π²ΠΊΠΈ Authorization. Π’Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π·Π°Π΄Π°ΠΉΡ‚Π΅ WAF Π² Ρ€Π΅ΠΆΠΈΠΌ само Π·Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ ΠΈ ΠΎΠΏΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΎΡ‚Π½ΠΎΠ²ΠΎ. Ако 401 ΠΈΠ·Ρ‡Π΅Π·Π½Π΅, ΠΏΡ€Π΅Ρ†ΠΈΠ·ΠΈΡ€Π°ΠΉΡ‚Π΅ Π½Π°Ρ€ΡƒΡˆΠ°Π²Π°Ρ‰ΠΎΡ‚ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, вмСсто Π΄Π° Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Ρ‚Π΅ WAF изцяло.
    Π‘Ρ‚ΡŠΠΏΠΊΠ° 13: ΠžΠ΄ΠΈΡ‚ΠΈΡ€Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠ΅ΡˆΠΈΡ€Π°Π½Π΅ Π½Π° CDN
    Π£Π²Π΅Ρ€Π΅Ρ‚Π΅ сС, Ρ‡Π΅ Π²Π°ΡˆΠΈΡΡ‚ CDN Π½Π΅ ΠΊΠ΅ΡˆΠΈΡ€Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈ 401. Π’ Cloudflare, Π·Π°Π΄Π°ΠΉΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π·Π° кСш Π·Π° заобикалянС Π½Π° кСша Π·Π° удостовСрСни ΠΊΡ€Π°ΠΉΠ½ΠΈ Ρ‚ΠΎΡ‡ΠΊΠΈ. Π’ AWS CloudFront, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°ΠΉΡ‚Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π΄Π° ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‰Π° Π·Π°Π³Π»Π°Π²ΠΊΠ°Ρ‚Π° Authorization към изходния ΡΡŠΡ€Π²ΡŠΡ€ β€” ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅, CloudFront я ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ Π²Π°ΡˆΠΈΡΡ‚ ΠΈΠ·Ρ…ΠΎΠ΄Π΅Π½ ΡΡŠΡ€Π²ΡŠΡ€ Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ Π²ΠΈΠ½Π°Π³ΠΈ Π²Ρ€ΡŠΡ‰Π° 401.
    ВнСдряванС Π½Π° стабилно удостовСряванС: Най-Π΄ΠΎΠ±Ρ€ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ Π·Π° собствСници Π½Π° ΡΡŠΡ€Π²ΡŠΡ€ΠΈ
    Ако управляватС ΡƒΠ΅Π± ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ API β€” нСзависимо Π΄Π°Π»ΠΈ Π² срСда Π·Π° VPS Π₯остинг ΠΈΠ»ΠΈ Π½Π° Dedicated ΡΡŠΡ€Π²ΡŠΡ€ β€” Ρ‚Π΅Π·ΠΈ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ прСдотвратяват Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ 401 Π΄Π° достигат Π΄ΠΎ Π²Π°ΡˆΠΈΡ‚Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ Π½Π° ΠΏΡŠΡ€Π²ΠΎ място.
    Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ТизнСния Ρ†ΠΈΠΊΡŠΠ» Π½Π° Ρ‚ΠΎΠΊΠ΅Π½ΠΈΡ‚Π΅
    Никога Π½Π΅ ΠΈΠ·Π΄Π°Π²Π°ΠΉΡ‚Π΅ Ρ‚ΠΎΠΊΠ΅Π½ΠΈ Π±Π΅Π· Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΎ ΠΈΠ·Ρ‚ΠΈΡ‡Π°Π½Π΅. Π—Π° OAuth 2.0, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ ΠΊΡ€Π°Ρ‚ΠΊΠΎΡ‚Ρ€Π°ΠΉΠ½ΠΈ Ρ‚ΠΎΠΊΠ΅Π½ΠΈ Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ (15–60 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ), ΡΡŠΡ‡Π΅Ρ‚Π°Π½ΠΈ с Π΄ΡŠΠ»Π³ΠΎΡ‚Ρ€Π°ΠΉΠ½ΠΈ Ρ‚ΠΎΠΊΠ΅Π½ΠΈ Π·Π° обновяванС. Π’Π½Π΅Π΄Ρ€Π΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ°ΠΊΡ‚ΠΈΠ²Π½ΠΎ обновяванС Π½Π° Ρ‚ΠΎΠΊΠ΅Π½ΠΈ: задСйствайтС обновяванС, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Ρ‚ΠΎΠΊΠ΅Π½ΡŠΡ‚ Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ ΠΈΠΌΠ° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ‚ 20% ΠΎΡ‚ оставащия си ΠΆΠΈΠ²ΠΎΡ‚, Π° Π½Π΅ слСд ΠΊΠ°Ρ‚ΠΎ Π²Π΅Ρ‡Π΅ Π΅ ΠΈΠ·Ρ‚Π΅ΠΊΡŠΠ».
    Access Token TTL:  15 minutes
    Refresh Token TTL: 30 days (rotated on each use)
    Refresh trigger:   < 3 minutes remaining on access token
    Π—Π° систСми Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° JWT, Π²Π½Π΅Π΄Ρ€Π΅Ρ‚Π΅ ротация Π½Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ с ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Π½Π° ΠΈΠ·Ρ‡Π°ΠΊΠ²Π°Π½Π΅. ΠŸΡ€ΠΈ Ρ€ΠΎΡ‚ΠΈΡ€Π°Π½Π΅ Π½Π° тайния ΠΊΠ»ΡŽΡ‡ Π·Π° подписванС, Π·Π°ΠΏΠ°Π·Π΅Ρ‚Π΅ стария ΠΊΠ»ΡŽΡ‡ Π²Π°Π»ΠΈΠ΄Π΅Π½ Π·Π° Π΅Π΄ΠΈΠ½ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π΅Π½ ΠΆΠΈΠ²ΠΎΡ‚ Π½Π° Ρ‚ΠΎΠΊΠ΅Π½Π°, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Ρ‚ΠΎΠΊΠ΅Π½ΠΈΡ‚Π΅ Π² Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ Π΄Π° Π½Π΅ Π±ΡŠΠ΄Π°Ρ‚ Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ Π°Π½ΡƒΠ»ΠΈΡ€Π°Π½ΠΈ.
    БмислСни ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈ ΠΏΡ€ΠΈ Π³Ρ€Π΅ΡˆΠΊΠΈ
    ΠžΡ‚Π³ΠΎΠ²ΠΎΡ€ΡŠΡ‚ 401 трябва Π²ΠΈΠ½Π°Π³ΠΈ Π΄Π° Π²ΠΊΠ»ΡŽΡ‡Π²Π° тяло, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΠΎΠΌΠ°Π³Π° Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° ΠΏΡ€Π°Π²ΠΈ слСд Ρ‚ΠΎΠ²Π°:
    {
      "error": "invalid_token",
      "error_description": "The access token expired at 2024-01-15T10:30:00Z",
      "error_uri": "https://api.example.com/docs/authentication"
    }
    НСяснитС ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈ 401, ΠΊΠΎΠΈΡ‚ΠΎ Π²Ρ€ΡŠΡ‰Π°Ρ‚ само ΠΊΠΎΠ΄ Π·Π° статус, ΠΏΡ€ΠΈΠ½ΡƒΠΆΠ΄Π°Π²Π°Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π΄Π° гадаят ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°Ρ‚Π° Π·Π° нСуспСха, драстично ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°ΠΉΠΊΠΈ тСТСстта Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π°.
    РСгистриранС ΠΈ прСдупрСТдСния ΠΏΡ€ΠΈ удостовСряванС
    РСгистрирайтС всСки нСуспСх ΠΏΡ€ΠΈ удостовСряванС с Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π΅Π½ контСкст: Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚, IP адрСс, потрСбитСлски Π°Π³Π΅Π½Ρ‚, заявСн рСсурс ΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π·Π° нСуспСха. НастройтС прСдупрСТдСния Π·Π° Π°Π½ΠΎΠΌΠ°Π»Π½ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ β€” скок Π² 401 ΠΎΡ‚ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π΅Π½ IP ΡƒΠΊΠ°Π·Π²Π° ΠΈΠ»ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½Π° конфигурация, ΠΈΠ»ΠΈ Π°Ρ‚Π°ΠΊΠ° с пълнСнС Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈΡ‚Π΅, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈ Π½Π° Dedicated ΡΡŠΡ€Π²ΡŠΡ€ΠΈ, ΠΈΠΌΠ°Ρ‚ пълСн Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΆΡƒΡ€Π½Π°Π»ΠΈ Π½Π° систСмно Π½ΠΈΠ²ΠΎ ΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° внСдрят пСрсонализирани Ρ‚Ρ€ΡŠΠ±ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈ Π·Π° прСдупрСТдСния Π±Π΅Π· ограничСния.
    Π‘ΠΈΠ³ΡƒΡ€Π½ΠΎ ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ
    Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ Π·Π° удостовСряванС трябва Π΄Π° ΠΏΡŠΡ‚ΡƒΠ²Π°Ρ‚ само ΠΏΠΎ ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠΈ. Ако Π²Π°ΡˆΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° потрСбитСлски влизания, SSL ΡΠ΅Ρ€Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΡŠΡ‚ Π΅ Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π΅Π½ β€” ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° Basic Auth ΠΏΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ HTTP ΠΈΠ·Π»Π°Π³Π° Base64-ΠΊΠΎΠ΄ΠΈΡ€Π°Π½ΠΈ потрСбитСлски ΠΈΠΌΠ΅Π½Π° ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΠΈ Π² ΠΎΡ‚ΠΊΡ€ΠΈΡ‚ тСкст ΠΏΠΎ ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°.
    ΠžΠ±Ρ…Π²Π°Ρ‚ ΠΈ ротация Π½Π° API ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅
    Π˜Π·Π΄Π°Π²Π°ΠΉΡ‚Π΅ API ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎ нСобходимия ΠΎΠ±Ρ…Π²Π°Ρ‚. Π’Π½Π΅Π΄Ρ€Π΅Ρ‚Π΅ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° Π·Π° ротация Π½Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ ΠΈ осигурСтС Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Π·Π° ротация, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠΌ позволява Π΄Π° смСнят ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ Π±Π΅Π· прСстой. ΠžΡ‚ΠΌΠ΅Π½ΡΠΉΡ‚Π΅ ΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ ΠΈ увСдомявайтС засСгнатитС ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ Ρ‡Ρ€Π΅Π· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ ΠΊΠ°Π½Π°Π».
    ВСстванС Π½Π° ΠΏΠΎΡ‚ΠΎΡ†ΠΈ Π·Π° удостовСряванС Π² CI/CD
    Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°ΠΉΡ‚Π΅ тСстовС Π·Π° ΠΏΠΎΡ‚ΠΎΡ†ΠΈ Π½Π° удостовСряванС Π² своя Ρ‚Ρ€ΡŠΠ±ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄ Π·Π° внСдряванС. Набор ΠΎΡ‚ тСстовС, ΠΊΠΎΠΉΡ‚ΠΎ упраТнява Π²Π°Π»ΠΈΠ΄Π½ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ, ΠΈΠ·Ρ‚Π΅ΠΊΠ»ΠΈ Ρ‚ΠΎΠΊΠ΅Π½ΠΈ, липсващи Π·Π°Π³Π»Π°Π²ΠΊΠΈ ΠΈ ΠΎΡ‚ΠΌΠ΅Π½Π΅Π½ΠΈ ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅, Ρ‰Π΅ ΡƒΠ»ΠΎΠ²ΠΈ рСгрСсии ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° достигнат Π΄ΠΎ производство. Π’ΠΎΠ²Π° Π΅ особСно ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ слСд Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° зависимости, засягащи middleware Π·Π° удостовСряванС.
    Π“Ρ€Π΅ΡˆΠΊΠΈ 401 Π² спСцифични срСди
    WordPress
    WordPress Π²Ρ€ΡŠΡ‰Π° 401 Π½Π° своя REST API (/wp-json/), ΠΊΠΎΠ³Π°Ρ‚ΠΎ Application Passwords са Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π°Ρ‚ΠΎ плъгин Π·Π° сигурност (Wordfence, iThemes Security) Π±Π»ΠΎΠΊΠΈΡ€Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ° Π΄ΠΎ REST API. ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅ Settings > Permalinks ΠΈ Π·Π°ΠΏΠ°Π·Π΅Ρ‚Π΅ ΠΎΡ‚Π½ΠΎΠ²ΠΎ β€” Ρ‚ΠΎΠ²Π° изчиства ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π° Π·Π° прСнаписванС, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π½Π°Ρ€ΡƒΡˆΠ°Ρ‚ ΠΊΡ€Π°ΠΉΠ½ΠΈΡ‚Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ Π·Π° удостовСряванС. Ако управляватС WordPress Π½Π° VPS с cPanel, ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅ Π΄Π°Π»ΠΈ mod_rewrite Π΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ ΠΈ Π΄Π°Π»ΠΈ .htaccess Π΅ записваСм.
    cPanel ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½ΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ Π·Π° ΡƒΠ΅Π± хостинг
    Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈΡ‚Π΅, Π·Π°Ρ‰ΠΈΡ‚Π΅Π½ΠΈ с ΠΏΠ°Ρ€ΠΎΠ»Π°, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ΠΈ Ρ‡Ρ€Π΅Π· cPanel, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ mod_authn_file Π½Π° Apache. Ако ΠΏΡŠΡ‚ΡΡ‚ Π½Π° Ρ„Π°ΠΉΠ»Π° .htpasswd Π² гСнСрирания .htaccess Π΅ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π΅Π½ ΠΈ основната дирСктория Π½Π° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅ сС ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ (чСсто слСд ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π½Π° Π°ΠΊΠ°ΡƒΠ½Ρ‚ΠΈ), ΠΏΡŠΡ‚ΡΡ‚ сС Π½Π°Ρ€ΡƒΡˆΠ°Π²Π° ΠΈ всяка заявка Π²Ρ€ΡŠΡ‰Π° 401. Π’ΠΈΠ½Π°Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ относитСлни ΠΏΡŠΡ‚ΠΈΡ‰Π° ΠΈΠ»ΠΈ провСрявайтС Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΈΡ‚Π΅ ΠΏΡŠΡ‚ΠΈΡ‰Π° слСд всяка миграция. Π‘Ρ€Π΅Π΄ΠΈΡ‚Π΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‰ΠΈ VPS ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½ΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ, осигуряват Π΄ΠΈΡ€Π΅ΠΊΡ‚Π΅Π½ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²Π°Ρ‚Π° систСма Π·Π° ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Π½Π΅ Π½Π° Ρ‚Π΅Π·ΠΈ ΠΏΡŠΡ‚ΠΈΡ‰Π° Π±Π΅Π· отварянС Π½Π° Ρ‚ΠΈΠΊΠ΅Ρ‚ Π·Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°.
    ИмСйл ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈ ΠΈ SMTP удостовСряванС
    SMTP ΡΡŠΡ€Π²ΡŠΡ€ΠΈΡ‚Π΅ Π²Ρ€ΡŠΡ‰Π°Ρ‚ Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚ Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π½ΠΎ Π½ΠΈΠ²ΠΎ Π½Π° 401 (535 Authentication credentials invalid), ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ Π½Π° ΠΈΠΌΠ΅ΠΉΠ» ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° са Π³Ρ€Π΅ΡˆΠ½ΠΈ ΠΈΠ»ΠΈ ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ изисква STARTTLS ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ ΠΎΠΏΠΈΡ‚Π²Π° ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ удостовСряванС. Ако ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Ρ‚Π΅ Email хостинг, ΡƒΠ²Π΅Ρ€Π΅Ρ‚Π΅ сС, Ρ‡Π΅ Π²Π°ΡˆΠΈΡΡ‚ пощСнски ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ с правилния ΠΌΠ΅Ρ‚ΠΎΠ΄ Π·Π° удостовСряванС (PLAIN, LOGIN ΠΈΠ»ΠΈ CRAM-MD5) ΠΈ Ρ‡Π΅ TLS Π΅ Π½Π°Π»ΠΎΠΆΠ΅Π½ ΠΏΡ€Π΅Π΄ΠΈ ΠΏΡ€Π΅Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ.
    Мобилни прилоТСния
    ΠœΠΎΠ±ΠΈΠ»Π½ΠΈΡ‚Π΅ прилоТСния чСсто срСщат Π³Ρ€Π΅ΡˆΠΊΠΈ 401 слСд ΠΊΠ°Ρ‚ΠΎ потрСбитСлят ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ ΠΏΠ°Ρ€ΠΎΠ»Π°Ρ‚Π° си Π² ΡƒΠ΅Π± β€” ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΡΡ‚ Ρ‚ΠΎΠΊΠ΅Π½ Π·Π° обновяванС Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ сС Π°Π½ΡƒΠ»ΠΈΡ€Π° ΠΎΡ‚ страна Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°, Π½ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ няма ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Π·Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ Π½Π° Ρ‚ΠΎΠ²Π° Π΄ΠΎ слСдващото Π½Π΅ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ API ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅. Π’Π½Π΅Π΄Ρ€Π΅Ρ‚Π΅ Π³Π»ΠΎΠ±Π°Π»Π΅Π½ HTTP ΠΏΡ€Π΅Ρ…Π²Π°Ρ‰Π°Ρ‡, ΠΊΠΎΠΉΡ‚ΠΎ улавя ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈ 401, ΠΎΠΏΠΈΡ‚Π²Π° обновяванС Π½Π° Ρ‚ΠΎΠΊΠ΅Π½Π° Ρ‚ΠΎΡ‡Π½ΠΎ вСднъТ ΠΈ Π°ΠΊΠΎ обновяванСто ΡΡŠΡ‰ΠΎ Π²ΡŠΡ€Π½Π΅ 401, прСнасочва потрСбитСля към Π΅ΠΊΡ€Π°Π½Π° Π·Π° Π²Π»ΠΈΠ·Π°Π½Π΅ с ясно ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅.
    ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° Π·Π° Π²Π·Π΅ΠΌΠ°Π½Π΅ Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ: ДиагностициранС Π½Π° Π²Π°ΡˆΠ°Ρ‚Π° Π³Ρ€Π΅ΡˆΠΊΠ° 401
    
    
    
    Π‘ΠΈΠΌΠΏΡ‚ΠΎΠΌ
    Най-вСроятна ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°
    ΠŸΡŠΡ€Π²ΠΎ дСйствиС
    
    
    
    
    
    
    
    
    —
    —
    —
    
    
    
    
    
    
    
    
    401 ΠΏΡ€ΠΈ всички заявки, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈ
    Π’ΠΎΠΊΠ΅Π½ΡŠΡ‚ Π΅ ΠΈΠ·Ρ‚Π΅ΠΊΡŠΠ» ΠΈΠ»ΠΈ ΠΎΡ‚ΠΌΠ΅Π½Π΅Π½
    ΠŸΡ€Π΅Π³Π»Π΅Π΄Π°ΠΉΡ‚Π΅ Ρ‚Π²ΡŠΡ€Π΄Π΅Π½ΠΈΠ΅Ρ‚ΠΎ `exp` Π½Π° Ρ‚ΠΎΠΊΠ΅Π½Π°; задСйствайтС обновяванС
    
    
    
    
    
    
    
    
    401 само Π² Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π°, Π½Π΅ Π² curl
    ΠŸΠΎΠ²Ρ€Π΅Π΄Π΅Π½Π° бисквитка ΠΈΠ»ΠΈ намСса Π½Π° Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΠ΅
    Π˜Π·Ρ‡ΠΈΡΡ‚Π΅Ρ‚Π΅ бисквиткитС; тСствайтС Π² ΠΈΠ½ΠΊΠΎΠ³Π½ΠΈΡ‚ΠΎ
    
    
    
    
    
    
    
    
    401 само ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ IP
    ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° скоростта ΠΎΡ‚ Π·Π°Ρ‰ΠΈΡ‚Π½Π° стСна ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊΠΈΡ€Π°Π½Π΅ Π½Π° IP
    ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅ ΠΆΡƒΡ€Π½Π°Π»ΠΈΡ‚Π΅ Π½Π° WAF; Π΄ΠΎΠ±Π°Π²Π΅Ρ‚Π΅ Π² бСлия списък Π°ΠΊΠΎ Π΅ Π»Π΅Π³ΠΈΡ‚ΠΈΠΌΠ½ΠΎ
    
    
    
    
    
    
    
    
    401 слСд миграция Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°
    ΠΠ°Ρ€ΡƒΡˆΠ΅Π½ ΠΏΡŠΡ‚ `.htpasswd`
    ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅ ΠΏΡŠΡ‚Ρ `AuthUserFile` Π² `.htaccess`
    
    
    
    
    
    
    
    
    401 ΠΏΡ€ΠΈ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° OPTIONS
    НСправилна конфигурация Π½Π° CORS
    Π”ΠΎΠ±Π°Π²Π΅Ρ‚Π΅ `Authorization` към `Access-Control-Allow-Headers`
    
    
    
    
    
    
    
    
    401 Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ
    ΠžΠ±Ρ€Π°Ρ‚Π΅Π½ прокси ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π° Π·Π°Π³Π»Π°Π²ΠΊΠΈ
    Π”ΠΎΠ±Π°Π²Π΅Ρ‚Π΅ `proxy_pass_header Authorization` към конфигурацията Π½Π° NGINX
    
    
    
    
    
    
    
    
    401 ΠΏΡ€ΠΈ CDN ΠΊΠ΅ΡˆΠΈΡ€Π°Π½ΠΈ рСсурси
    CDN обслуТва ΠΊΠ΅ΡˆΠΈΡ€Π°Π½ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ 401
    Π—Π°ΠΎΠ±ΠΈΠΊΠΎΠ»Π΅Ρ‚Π΅ кСша Π·Π° удостовСрСни ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈ
    
    
    
    
    
    
    
    
    401 слСд актуализация Π½Π° зависимост
    ΠΠ°Ρ€ΡƒΡˆΠ°Π²Π°Ρ‰Π° промяна Π² middleware Π·Π° удостовСряванС
    ΠŸΡ€Π΅Π³Π»Π΅Π΄Π°ΠΉΡ‚Π΅ ΠΆΡƒΡ€Π½Π°Π»Π° Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅; ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅ Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° Π·Π° Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Π·Π°Π³Π»Π°Π²ΠΊΠΈ
    
    
    
    
    
    ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Π½ списък ΠΏΡ€Π΅Π΄ΠΈ СскалиранС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠ° 401
    Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ Ρ‚ΠΎΠ·ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Π½ списък ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° ΠΏΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ Ρ‚ΠΈΠΊΠ΅Ρ‚ Π·Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° ΠΈΠ»ΠΈ Π΄Π° СскалиратС към вашия Π΅ΠΊΠΈΠΏ ΠΏΠΎ инфраструктура:
    
    Π£Π»ΠΎΠ²Π΅Π½ суровият HTTP ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ с curl -v ΠΈ ΠΏΠΎΡ‚Π²ΡŠΡ€Π΄Π΅Π½Π° стойността Π½Π° Π·Π°Π³Π»Π°Π²ΠΊΠ°Ρ‚Π° WWW-Authenticate
  • Π”Π΅ΠΊΠΎΠ΄ΠΈΡ€Π°Π½ JWT ΠΈΠ»ΠΈ Ρ‚ΠΎΠΊΠ΅Π½ΡŠΡ‚ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ Ρ‚Π²ΡŠΡ€Π΄Π΅Π½ΠΈΠ΅Ρ‚ΠΎ exp спрямо Ρ‚Π΅ΠΊΡƒΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°
  • ΠŸΠΎΡ‚Π²ΡŠΡ€Π΄Π΅Π½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΡŠΡ‚ Π½Π° Π·Π°Π³Π»Π°Π²ΠΊΠ°Ρ‚Π° Authorization ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π° Π½Π° схСмата, Ρ€Π΅ΠΊΠ»Π°ΠΌΠΈΡ€Π°Π½Π° ΠΎΡ‚ ΡΡŠΡ€Π²ΡŠΡ€Π°
  • ВСствано Π² ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ† ΠΈΠ½ΠΊΠΎΠ³Π½ΠΈΡ‚ΠΎ с всички Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ΠΈ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ
  • Π˜Π·Ρ‡ΠΈΡΡ‚Π΅Π½ΠΈ всички бисквитки ΠΈ кСш Π·Π° засСгнатия Π΄ΠΎΠΌΠ΅ΠΉΠ½
  • ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΈ ΠΆΡƒΡ€Π½Π°Π»ΠΈΡ‚Π΅ Π·Π° Π³Ρ€Π΅ΡˆΠΊΠΈ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° Π·Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Π°Ρ‚Π° ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π·Π° ΠΎΡ‚Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅
  • ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π° конфигурацията Π½Π° обратния прокси ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‰Π° Π·Π°Π³Π»Π°Π²ΠΊΠ°Ρ‚Π° Authorization
  • ΠŸΠΎΡ‚Π²ΡŠΡ€Π΄Π΅Π½ΠΎ, Ρ‡Π΅ CDN Π½Π΅ ΠΊΠ΅ΡˆΠΈΡ€Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π° 401
  • ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π° Π½Π° WAF Π·Π° Ρ„Π°Π»ΡˆΠΈΠ²ΠΎ-ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»Π½ΠΈ съвпадСния Π½Π° Π·Π°Π³Π»Π°Π²ΠΊΠ°Ρ‚Π° Authorization
  • ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ, Ρ‡Π΅ SSL/TLS Π΅ Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ Π½Π° ΠΊΡ€Π°ΠΉΠ½Π°Ρ‚Π° Ρ‚ΠΎΡ‡ΠΊΠ° β€” ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ трябва Π΄Π° ΠΏΡŠΡ‚ΡƒΠ²Π°Ρ‚ Π½Π΅ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½ΠΈ

Π§Π—Π’

Каква Π΅ Ρ€Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° ΠΌΠ΅ΠΆΠ΄Ρƒ HTTP 401 ΠΈ HTTP 403?

401 ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π° ΠΊΠΎΠΉ стС Π²ΠΈΠ΅ β€” удостовСряванСто липсва ΠΈΠ»ΠΈ Π΅ Π½Π΅Π²Π°Π»ΠΈΠ΄Π½ΠΎ. 403 ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ Π·Π½Π°Π΅ ΠΊΠΎΠΉ стС Π²ΠΈΠ΅, Π½ΠΎ Π΅ Ρ€Π΅ΡˆΠΈΠ», Ρ‡Π΅ няматС Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ рСсурса. ΠŸΠΎΠΏΡ€Π°Π²Π΅Ρ‚Π΅ 401, ΠΊΠ°Ρ‚ΠΎ прСдоставитС ΠΈΠ»ΠΈ ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Ρ‚Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ; ΠΏΠΎΠΏΡ€Π°Π²Π΅Ρ‚Π΅ 403, ΠΊΠ°Ρ‚ΠΎ ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Ρ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π° Π·Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ° ΠΈΠ»ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ‚Π°.

Π—Π°Ρ‰ΠΎ моят API Π²Ρ€ΡŠΡ‰Π° 401 Π΄ΠΎΡ€ΠΈ ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°ΠΌ правилния Ρ‚ΠΎΠΊΠ΅Π½?

Най-чСститС ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈ са ΠΈΠ·Ρ‚ΠΈΡ‡Π°Π½Π΅ Π½Π° Ρ‚ΠΎΠΊΠ΅Π½Π° (ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅ Ρ‚Π²ΡŠΡ€Π΄Π΅Π½ΠΈΠ΅Ρ‚ΠΎ exp), Ρ€Π°Π·ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ Π½Π° часовника ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΈ ΡΡŠΡ€Π²ΡŠΡ€ (синхронизирайтС NTP), Ρ€ΠΎΡ‚ΠΈΡ€Π°Π½ ΠΊΠ»ΡŽΡ‡ Π·Π° подписванС, Π°Π½ΡƒΠ»ΠΈΡ€Π°Ρ‰ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈ Ρ‚ΠΎΠΊΠ΅Π½ΠΈ, ΠΈΠ»ΠΈ Π·Π°Π³Π»Π°Π²ΠΊΠ°Ρ‚Π° Authorization сС ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π° ΠΎΡ‚ ΠΎΠ±Ρ€Π°Ρ‚Π΅Π½ прокси ΠΈΠ»ΠΈ CDN ΠΏΡ€Π΅Π΄ΠΈ Π΄Π° достигнС Π΄ΠΎ изходния ΡΡŠΡ€Π²ΡŠΡ€.

МоТС Π»ΠΈ Π³Ρ€Π΅ΡˆΠΊΠ° 401 Π΄Π° бъдС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅Π½Π° ΠΎΡ‚ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½Π° конфигурация Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°, Π° Π½Π΅ ΠΎΡ‚ Π³Ρ€Π΅ΡˆΠΊΠ° Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°?

Π”Π°. НСправилно ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ Ρ„Π°ΠΉΠ» .htaccess, Π±Π»ΠΎΠΊ auth_basic Π½Π° NGINX, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ към Π³Ρ€Π΅ΡˆΠ½ΠΎΡ‚ΠΎ мСстополоТСниС, ΠΎΠ±Ρ€Π°Ρ‚Π΅Π½ прокси, ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Ρ‰ Π·Π°Π³Π»Π°Π²ΠΊΠ°Ρ‚Π° Authorization, ΠΈΠ»ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π½Π° WAF, Π±Π»ΠΎΠΊΠΈΡ€Π°Ρ‰ΠΎ удостовСрСни заявки, ΠΌΠΎΠ³Π°Ρ‚ всички Π΄Π° ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π°Ρ‚ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈ 401 Π΄ΠΎΡ€ΠΈ ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° напълно Π²Π°Π»ΠΈΠ΄Π½ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈ Π΄Π°Π½Π½ΠΈ.

Как Π΄Π° прСдотвратя Π³Ρ€Π΅ΡˆΠΊΠΈ 401, ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅Π½ΠΈ ΠΎΡ‚ ΠΈΠ·Ρ‚ΠΈΡ‡Π°Π½Π΅ Π½Π° Ρ‚ΠΎΠΊΠ΅Π½ΠΈ Π² производствСно ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅?

Π’Π½Π΅Π΄Ρ€Π΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ°ΠΊΡ‚ΠΈΠ²Π½ΠΎ обновяванС Π½Π° Ρ‚ΠΎΠΊΠ΅Π½ΠΈ β€” Π½Π°Π±Π»ΡŽΠ΄Π°Π²Π°ΠΉΡ‚Π΅ оставащия ΠΆΠΈΠ²ΠΎΡ‚ Π½Π° Ρ‚ΠΎΠΊΠ΅Π½Π° ΠΈ Π³ΠΎ обновявайтС ΠΏΡ€Π΅Π΄ΠΈ ΠΈΠ·Ρ‚ΠΈΡ‡Π°Π½Π΅, Π° Π½Π΅ слСд Ρ‚ΠΎΠ²Π°. Π—Π° OAuth 2.0, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ ΠΊΡ€Π°ΠΉΠ½Π°Ρ‚Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π·Π° Ρ‚ΠΎΠΊΠ΅Π½ΠΈ Π·Π° обновяванС, Π·Π° Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ Π½ΠΎΠ² Ρ‚ΠΎΠΊΠ΅Π½ Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ тСкущият ΠΈΠΌΠ° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΎΡ‚ 20% ΠΎΡ‚ оставащото си TTL. Π”ΠΎΠ±Π°Π²Π΅Ρ‚Π΅ Π³Π»ΠΎΠ±Π°Π»Π΅Π½ ΠΏΡ€Π΅Ρ…Π²Π°Ρ‰Π°Ρ‡ Π½Π° HTTP ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈ, ΠΊΠΎΠΉΡ‚ΠΎ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈ 401, ΠΊΠ°Ρ‚ΠΎ ΠΎΠΏΠΈΡ‚Π²Π° Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½ΠΎ обновяванС Π½Π° Ρ‚ΠΎΠΊΠ΅Π½Π° ΠΏΡ€Π΅Π΄ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ ΠΎΠΏΠΈΡ‚ Π½Π° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½Π°Ρ‚Π° заявка.

Π˜Π·Ρ‡ΠΈΡΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° бисквиткитС Π²ΠΈΠ½Π°Π³ΠΈ Π»ΠΈ поправя Π³Ρ€Π΅ΡˆΠΊΠ° 401 Π² Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π°?

Π‘Π°ΠΌΠΎ Π°ΠΊΠΎ основната ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π΅ ΠΏΠΎΠ²Ρ€Π΅Π΄Π΅Π½Π° ΠΈΠ»ΠΈ остаряла сСсийна бисквитка. Ако 401 Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅Π½Π° ΠΎΡ‚ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½Π° конфигурация Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π°, ΠΈΠ·Ρ‚Π΅ΠΊΡŠΠ» API ΠΊΠ»ΡŽΡ‡ ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊΠΈΡ€Π°Π½Π΅ ΠΎΡ‚ Π·Π°Ρ‰ΠΈΡ‚Π½Π° стСна, изчистванСто Π½Π° бисквиткитС няма Π΄Π° ΠΈΠΌΠ° Π΅Ρ„Π΅ΠΊΡ‚. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ† ΠΈΠ½ΠΊΠΎΠ³Π½ΠΈΡ‚ΠΎ ΠΊΠ°Ρ‚ΠΎ диагностична ΡΡ‚ΡŠΠΏΠΊΠ° β€” Π°ΠΊΠΎ 401 ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π° Π² ΠΈΠ½ΠΊΠΎΠ³Π½ΠΈΡ‚ΠΎ, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΅ ΠΎΡ‚ страна Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π° ΠΈΠ»ΠΈ ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°, Π° Π½Π΅ ΠΎΡ‚ страна Π½Π° Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π°.