ឯកសារ API
Advanced Authentication Patterns — OAuth 2.0, JWT, Key Rotation
ធ្វើជាម្ចាស់លើយន្តការផ្ទៀងផ្ទាត់ដ៏ស្មុគស្មាញសម្រាប់ការបញ្ចូល Smart Money API ក្នុងបរិស្ថានសហគ្រាស។ រៀនពីលំហូរ OAuth 2.0, លំនាំ JWT token, ការផ្លាស់ប្តូរ key ដោយសុវត្ថិភាព, និងការអនុវត្តការផ្ទៀងផ្ទាត់ពហុកត្តិ។
បោះពុម្ពផ្សាយនៅថ្ងៃទី 21 ខែមីនា ឆ្នាំ 2026
•
18 នាទីអាន
•
កម្រិតខ្ពស់
ទិដ្ឋភាពទូទៅនៃការផ្ទៀងផ្ទាត់
Smart Money API គាំទ្រវិធីសាកសួរផ្ទៀងផ្ទាត់ច្រើនប្រភេទដែលត្រូវបានរចនាឡើងដើម្បីអនុញ្ញាតឱ្យមានភាពខុសគ្នានៃស្ថាបត្យកម្មកម្មវិធី, តម្រូវការសុវត្ថិភាព, និងគោលនយោបាយរបស់អង្គការ។ ការយល់ដឹងអំពីលំនាំទាំងនេះធានាថាការបញ្ចូលរបស់អ្នកមានសុវត្ថិភាព និងមានប្រសិទ្ធភាព។
ការផ្ទៀងផ្ទាត់នៅក្នុង Smart Money API ដំណើរការតាមរយៈស្រទាប់ចម្បងចំនួនបី៖
- API Keys — ការផ្ទៀងផ្ទាត់ bearer token សាមញ្ញសម្រាប់ការអភិវឌ្ឍន៍ និងការបញ្ចូលដោយផ្ទាល់
- JWT Tokens — សញ្ញាសម្គាល់ដែលគ្មានស្ថានភាព ដែលបានចុះហត្ថលេខាដោយគណិតសាស្ត្រសម្រាប់ប្រព័ន្ធចែកចាយ និងសេវាកម្មតូចៗ
- OAuth 2.0 — គោលការណ៍អនុញ្ញាតដែលបានផ្ទេរសិទ្ធិសម្រាប់ការបញ្ចូលភាគីទីបី និងកម្មវិធី SaaS
គោលការណ៍សុវត្ថិភាព៖ កុំដាក់ឲ្យឃើញពាក្យសម្ងាត់ផ្ទៀងផ្ទាត់នៅក្នុងកូដខាងអតិថិជន, កំណត់ហេតុ, ការគ្រប់គ្រងកំណែ, ឬសារកំហុស។ អនុវត្តការផ្លាស់ប្តូរពាក្យសម្ងាត់តាមកាលវិភាគ និងភ្លាមៗនៅពេលមានការរំលោភ។
វិធីសាកសួរនីមួយៗមានអត្ថប្រយោជន៍ខុសៗគ្នា។ API keys ដំណើរការបានល្អបំផុតសម្រាប់ការទំនាក់ទំនងពីក្រោយឆាកទៅក្រោយឆាកដែលការផ្ទុកពាក្យសម្ងាត់ត្រូវបានគ្រប់គ្រង។ JWT tokens មានប្រសិទ្ធភាពខ្ពស់នៅក្នុងស្ថាបត្យកម្មចែកចាយដែលគ្មានស្ថានភាពរួម។ OAuth 2.0 ផ្តល់សិទ្ធិចូលដោយអ្នកប្រើសម្រាប់កម្មវិធីភាគីទីបី។
ការផ្ទៀងផ្ទាត់ API Key
API keys គឺជាយន្តការផ្ទៀងផ្ទាត់សាមញ្ញបំផុត—ពួកវាជាខ្សែអក្សរចៃដន្យដែលត្រូវបានបង្កើតសម្រាប់គណនីរបស់អ្នកដែលកំណត់អត្តសញ្ញាណកម្មវិធីរបស់អ្នកទៅកាន់ Smart Money API។ រាល់សំណើត្រូវតែរួមបញ្ចូល API key របស់អ្នកជាទូទៅថាជា header ឬប៉ារ៉ាម៉ែត្រសំណួរ។
API Key ដោយប្រើ Header
វិធីសាកសួរដែលបានណែនាំគឺការបញ្ជូន API key របស់អ្នកនៅក្នុង header Authorization ដោយប្រើគ្រោងការណ៍ Bearer៖
curl -X GET "https://api.smartmoneyapi.com/v1/whales/btc" \
-H "Authorization: Bearer sk_live_1234567890abcdef" \
-H "Accept: application/json"
API Key ដោយប្រើប៉ារ៉ាម៉ែត្រសំណួរ
សម្រាប់ការតភ្ជាប់ WebSocket ឬនៅពេលដែល headers មិនអាចត្រូវបានកែប្រែ, បញ្ជូន API key ជាប៉ារ៉ាម៉ែត្រសំណួរ៖
ws://localhost:8877/ws?api_key=sk_live_1234567890abcdef
// បង្កើតស្ទ្រីម WebSocket ដែលបានផ្ទៀងផ្ទាត់
លក្ខណៈពិសេសនៃ API Key
| លក្ខណៈសម្បត្តិ |
ការពិពណ៌នា |
| ទម្រង់ |
ខ្សែអក្សរ hex ចំនួន 128 តួដែលមានបុព្វបទ sk_test_ ឬ sk_live_ |
| វិសាលភាព |
ទទួលយកសិទ្ធិទាំងអស់របស់គណនីដែលបានបង្កើតវា |
| ការផុតកំណត់ |
មិនផុតកំណត់ដោយស្វ័យប្រវត្តិ; ត្រូវតែផ្លាស់ប្តូរដោយដៃ |
| ការផ្លាស់ប្តូរ |
បង្កើត key ថ្មី, ផ្លាស់ទីចរាចរ, បន្ទាប់មកបិទ key ចាស់ |
| ដែនកំណត់អត្រា |
ចែករំលែកទូទាំងសំណើទាំងអស់ដែលប្រើ key ដូចគ្នា |
ការអនុវត្តសុវត្ថិភាព API Key
- អថេរបរិស្ថាន — ផ្ទុក keys នៅក្នុងឯកសារ .env (មិនត្រូវបានដាក់ក្នុងការគ្រប់គ្រងកំណែ) ហើយផ្ទុកនៅពេលដំណើរការ
- ប្រព័ន្ធឃ្លាំង — ប្រើ HashiCorp Vault, AWS Secrets Manager, ឬ Azure Key Vault ក្នុងការប្រើប្រាស់ជាក់ស្តែង
- កូនសោដាច់ដោយឡែក — រក្សាកូនសោសាកល្បង និងកូនសោពិតប្រាកដដាច់ដោយឡែក។ ផ្លាស់ប្តូរកូនសោសាកល្បងឱ្យបានញឹកញាប់
- វិសាលភាពអប្បបរមា — បង្កើតកូនសោដាច់ដោយឡែកសម្រាប់ការរួមបញ្ចូលគ្នាផ្សេងៗគ្នានៅពេលអាចធ្វើបាន
- ការកត់ត្រាត្រួតពិនិត្យ — កត់ត្រាព្រឹត្តិការណ៍ទាំងអស់ដែលពាក់ព័ន្ធនឹងការបង្កើត និងការប្រើប្រាស់ API key
ទទួលបាន API key របស់អ្នកក្នុងរយៈពេល ៣០ វិនាទី
ត្រៀមខ្លួនដើម្បីសាងសង់? យក API key ដោយឥតគិតថ្លៃ (៥០ ការហៅ/ថ្ងៃ, គ្មានកាត) ហើយចាប់ផ្តើមទាញយកទិន្នន័យផ្ទាល់ពី whale, funding និង on-chain ។
ទទួលបាន API key របស់អ្នក →
លំនាំ Bearer Token
Bearer tokens ពង្រីកគំនិត API key សាមញ្ញដោយបន្ថែមបរិបទ, ពេលវេលាផុតកំណត់, និងយន្តការធ្វើឱ្យស្រស់។ ពួកវាល្អសម្រាប់កម្មវិធីដែលត្រូវការការគ្រប់គ្រងព័ត៌មានផ្ទៀងផ្ទាត់ដោយកម្មវិធី។
ការទទួលបាន Bearer Tokens
ផ្លាស់ប្តូរ API key និងអាថ៌កំបាំងរបស់អ្នកសម្រាប់ bearer token ដែលមានសុពលភាពរយៈពេល ២៤ ម៉ោង៖
curl -X POST "https://api.smartmoneyapi.com/v1/auth/token" \
-H "Content-Type: application/json" \
-d '{
"api_key": "sk_live_1234567890",
"api_secret": "secret_abc123xyz"
}'
ទម្រង់ការឆ្លើយតប Token
ចំណុចបញ្ចប់ត្រឡប់មកវិញ bearer token ជាមួយនឹងទិន្នន័យមេតាដា៖
{
"access_token": "eyJhbGciOiJIUzI1NiIs...",
"token_type": "Bearer",
"expires_in": 86400,
"refresh_token": "refresh_1234567..."
}
ការប្រើប្រាស់ Bearer Tokens
ដាក់បញ្ចូល token នៅក្នុងក្បាល Authorization សម្រាប់ការស្នើសុំបន្តបន្ទាប់ទាំងអស់៖
curl -X GET "https://api.smartmoneyapi.com/v1/derivatives/funding-heatmap" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
លំហូរ Token Refresh
នៅពេលដែល token ជិតផុតកំណត់, ប្រើ refresh token ដើម្បីទទួលបានថ្មីដោយមិនត្រូវការ API secret របស់អ្នក៖
curl -X POST "https://api.smartmoneyapi.com/v1/auth/refresh" \
-H "Content-Type: application/json" \
-d '{
"refresh_token": "refresh_1234567..."
}'
ការអនុវត្ត OAuth 2.0
OAuth 2.0 អនុញ្ញាតឱ្យអ្នកប្រើប្រាស់ផ្តល់កម្មវិធីឱ្យចូលប្រើគណនី Smart Money API របស់ពួកគេដោយមិនចាំបាច់ចែករំលែកព័ត៌មានផ្ទៀងផ្ទាត់។ នេះគឺជាការចាំបាច់សម្រាប់វេទិកា SaaS, ការរួមបញ្ចូលគ្នាដោយភាគីទីបី, និងកម្មវិធីពហុអ្នកជួល។
លំហូរអាជ្ញាប័ណ្ណកូដ OAuth 2.0
លំហូរស្តង់ដារសម្រាប់កម្មវិធីវេប៖
- អ្នកប្រើប្រាស់ចាប់ផ្តើមចូល — អ្នកប្រើប្រាស់ចុច "ភ្ជាប់ជាមួយ Smart Money API"
- បញ្ជូនបន្តទៅកាន់ម៉ាស៊ីនបម្រើអាជ្ញាប័ណ្ណ — កម្មវិធីរបស់អ្នកបញ្ជូនបន្តអ្នកប្រើប្រាស់ទៅកាន់ចំណុចបញ្ចប់អាជ្ញាប័ណ្ណរបស់ Smart Money
- អ្នកប្រើប្រាស់ផ្តល់ការអនុញ្ញាត — អ្នកប្រើប្រាស់ពិនិត្យមើលវិសាលភាពដែលបានស្នើសុំ និងផ្តល់ការអនុញ្ញាត
- កូដអាជ្ញាប័ណ្ណត្រូវបានត្រឡប់មកវិញ — អ្នកប្រើប្រាស់ត្រូវបានបញ្ជូនបន្តត្រឡប់មកវិញជាមួយនឹងកូដអាជ្ញាប័ណ្ណ
- ផ្លាស់ប្តូរកូដសម្រាប់ Token — ផ្នែកខាងក្រោយផ្លាស់ប្តូរកូដសម្រាប់ token ចូលប្រើ (កូដមិនត្រូវបានបង្ហាញចំពោះផ្នែកខាងមុខ)
- រក្សាទុក Token — ផ្ទុកថូកងធ្វើអោយថ្មីដោយសុវត្ថិភាព។ ប្រើថូកងចូលដំណើរការសំរាប់ការហៅ API
ជំហានទី១៖ បញ្ជូនអ្នកប្រើទៅកាន់ចំណុចបញ្ចប់នៃការអនុញ្ញាត
// URL ដើម្បីបញ្ជូនអ្នកប្រើទៅ
const authUrl = new URL('https://api.smartmoneyapi.com/oauth/authorize');
authUrl.searchParams.append('client_id', 'your_client_id');
authUrl.searchParams.append('redirect_uri', 'https://yourapp.com/callback');
authUrl.searchParams.append('response_type', 'code');
authUrl.searchParams.append('scope', 'whales derivatives onchain');
authUrl.searchParams.append('state', generateRandomState());
window.location.href = authUrl.toString();
ជំហានទី២៖ ដោះស្រាយការហៅត្រឡប់ និងផ្លាស់ប្តូរកូដ
// ផ្នែកខាងក្រោយដោះស្រាយផ្លូវ /callback
const code = req.query.code;
const storedState = req.session.state;
const receivedState = req.query.state;
// ផ្ទៀងផ្ទាត់ប៉ារ៉ាម៉ែត្រ state
if (storedState !== receivedState) {
throw new Error('State mismatch - CSRF attack detected');
}
// ផ្លាស់ប្តូរកូដសំរាប់ថូកង
const tokenResponse = await fetch('https://api.smartmoneyapi.com/oauth/token', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
grant_type: 'authorization_code',
code: code,
client_id: process.env.OAUTH_CLIENT_ID,
client_secret: process.env.OAUTH_CLIENT_SECRET,
redirect_uri: 'https://yourapp.com/callback'
})
});
const tokens = await tokenResponse.json();
// ផ្ទុកថូកងដោយសុវត្ថិភាព
វិសាលភាព OAuth
ស្នើសុំតែវិសាលភាពដែលកម្មវិធីរបស់អ្នកត្រូវការ។ Smart Money API កំណត់វិសាលភាពទាំងនេះ៖
| វិសាលភាព |
ការពិពណ៌នា |
| whales |
ចូលប្រើការតាមដានកាបូបសាច់ប្រាក់របស់ whales និងវាស់វែងការប្រមូល |
| derivatives |
ចូលប្រើទិន្នន័យអនាគត ការបង្កើនជាអចិន្ត្រៃយ៍ និងអត្រាការផ្តល់មូលនិធិ |
| onchain |
ចូលប្រើលំហូរប្រតិបត្តិការ on-chain និងការវិភាគ |
| alerts |
បង្កើត និងគ្រប់គ្រងការជូនដំណឹងតាម webhook |
| offline |
ចូលប្រើថូកងធ្វើអោយថ្មីដើម្បីទទួលថូកងចូលដំណើរការដោយគ្មានការភ្ជាប់ |
ការគ្រប់គ្រងថូកង JWT
JWT (JSON Web Tokens) ផ្តល់ការផ្ទៀងផ្ទាត់ភាពគ្មានស្ថានភាព—ម៉ាស៊ីនមេមិនចាំបាច់ផ្ទុកទិន្នន័យសេស្សិ៍ទេ។ Smart Money API ប្រើ RS256 (RSA Signature with SHA-256) សំរាប់ការចុះហត្ថលេខាថូកង អនុញ្ញាតអោយផ្ទៀងផ្ទាត់ដោយមិនចាំបាច់ទាក់ទង API។
រចនាសម្ព័ន្ធ JWT
ថូកង JWT មានផ្នែកបីដែលញែកដោយចំណុច៖
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6IjEifQ.
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFjY3QxMjM0In0.
SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
// HEADER.PAYLOAD.SIGNATURE
ក្បាល JWT
ក្បាលកំណត់អាឡហ្គោរីត និងប្រភេទថូកង៖
{
"alg": "RS256",
"typ": "JWT",
"kid": "1"
}
ការទាមទារផ្ទុក JWT
ផ្ទុកមានការទាមទារ (សេចក្តីថ្លែងការណ៍អំពីអ្នកប្រើ/កម្មវិធី)៖
{
"sub": "acct_1234567890",
"name": "Trading Bot",
"iat": 1703001600,
"exp": 1703088000,
"scopes": ["whales", "derivatives"],
"aud": "https://api.smartmoneyapi.com"
}
ការផ្ទៀងផ្ទាត់ហត្ថលេខា JWT
ទាញយកសោសាធារណៈរបស់ Smart Money ហើយផ្ទៀងផ្ទាត់ថូកងមុនពេលទទួលយកវា៖
const jwt = require('jsonwebtoken');
const fs = require('fs');
// ទទួលសោសាធារណៈពី Smart Money API
const publicKey = fs.readFileSync('smartmoney-public.pem');
// ផ្ទៀងផ្ទាត់ថូកង
try {
const decoded = jwt.verify(token, publicKey, {
algorithms: ['RS256'],
audience: 'https://api.smartmoneyapi.com',
issuer: 'https://api.smartmoneyapi.com'
});
// ថូកងមានសុពលភាព ប្រើការទាមទារដែលបានឌិកូដ
} catch (err) {
// ថូកងមិនត្រឹមត្រូវ ឬផុតកំណត់
}
យុទ្ធសាស្ត្រផ្លាស់ប្តូរសោ
ការផ្លាស់ប្តូរសោជាប្រចាំគឺសំខាន់សំរាប់ការថែរក្សាសុវត្ថិភាព។ ទោះបីមានការអនុវត្តសុវត្ថិភាពល្អបំផុតក៏ដោយ សន្មតថាសោអាចត្រូវបានរំលោភ ហើយអនុវត្តការផ្លាស់ប្តូរតាមប្រព័ន្ធ។
ប្រេកង់ផ្លាស់ប្តូរ
Smart Money ណែនាំពេលវេលាផ្លាស់ប្តូរផ្សេងៗគ្នាដោយផ្អែកលើប្រភេទសោ និងការប្រើប្រាស់៖
| ប្រភេទសោ |
ការផ្លាស់ប្តូរដែលបានណែនាំ |
ការផ្លាស់ប្តូរអប្បបរមា |
| សោ API សំរាប់សាកល្បង |
រៀងរាល់ខែ |
រៀងរាល់ត្រីមាស |
| សោ API សំរាប់ផលិត |
រៀងរាល់ត្រីមាស |
រៀងរាល់ឆ្នាំ |
| ថូកងធ្វើអោយថ្មី OAuth |
ស្វ័យប្រវត្តិ (បន្ទាប់ពី ៩០ ថ្ងៃ) |
ដោយដៃ (បន្ទាប់ពី ១៨០ ថ្ងៃ) |
| សោគណនីសេវា |
ពាក់កណ្តាលឆ្នាំ |
រៀងរាល់ឆ្នាំ |
ដំណើរការផ្លាស់ប្តូរសោដោយមិនមានពេលរងចាំ
ផ្លាស់ប្តូរសោដោយមិនរំខានសេវា៖
- បង្កើតសោថ្មី — បង្កើតសោ API ថ្មីតាមរយៈផ្ទាំងគ្រប់គ្រង ឬ API
- ដាក់ឱ្យដំណើរការសោថ្មី — ធ្វើឱ្យថ្មីភាពអាថ៌កំបាំងកម្មវិធីនៅក្នុងដំណាក់កាលសាកល្បង ធ្វើការសាកល្បងយ៉ាងហ្មត់ចត់
- ការចេញផ្សាយដោយដំណាលគ្នា — ដាក់ឱ្យដំណើរការលើ ១០% នៃម៉ាស៊ីនបម្រើ តាមដានកំហុស
- ការចាប់ផ្តើមពេញលេញ — ការដាក់ចេញទៅកាន់ម៉ាស៊ីនបម្រើដែលនៅសល់
- ផ្ទៀងផ្ទាត់ការចរាចរ — បញ្ជាក់ថាសំណើទាំងអស់ប្រើកូនសោថ្មី
- បិទកូនសោចាស់ — សម្គាល់កូនសោចាស់ថាមិនសកម្ម ប៉ុន្តែកុំលុបភ្លាមៗ
- លុបកូនសោចាស់ — បន្ទាប់ពី 48 ម៉ោងដោយគ្មានកំហុស លុបជាអចិន្ត្រៃយ៍
ការផ្លាស់ប្តូរកូនសោអាជ្ញាសិទ្ធិ
ប្រសិនបើអ្នកសង្ស័យថាកូនសោត្រូវបានរំលោភ៖
// សកម្មភាពភ្លាមៗ៖ បិទកូនសោដែលត្រូវបានរំលោភ
curl -X POST "https://api.smartmoneyapi.com/v1/keys/sk_live_xxx/revoke" \
-H "Authorization: Bearer token"
// បង្កើតកូនសោជំនួសភ្លាមៗ
curl -X POST "https://api.smartmoneyapi.com/v1/keys" \
-H "Content-Type: application/json" \
-d '{
"name": "កូនសោជំនួសអាជ្ញាសិទ្ធិ"
}'
ការផ្លាស់ប្តូរស្វ័យប្រវត្តិនៅក្នុង Kubernetes
ប្រើ Kubernetes Secrets និង operators សម្រាប់ការផ្លាស់ប្តូរស្វ័យប្រវត្តិ៖
apiVersion: batch/v1
kind: CronJob
metadata:
name: api-key-rotator
spec:
schedule: "0 0 * * 0" # រៀងរាល់អាទិត្យនៅថ្ងៃអាទិត្យ
jobTemplate:
spec:
template:
spec:
containers:
- name: rotator
image: smartmoney-key-rotator:latest
ការផ្ទៀងផ្ទាត់ពហុកត្តា (MFA)
សម្រាប់គណនីដែលចូលប្រើទិន្នន័យផលិតកម្ម MFA ផ្តល់នូវស្រទាប់សុវត្ថិភាពបន្ថែមដោយទាមទារកត្តាទីពីរក្រៅពីគ្រាន់តែពាក្យសម្ងាត់។
វិធីសាស្រ្ត MFA ដែលគាំទ្រ
- TOTP (ពាក្យសម្ងាត់មួយដងផ្អែកលើពេលវេលា) — កម្មវិធីដូចជា Google Authenticator, Authy
- WebAuthn/FIDO2 — កូនសោសុវត្ថិភាពផ្នែករឹង ជីវមាត្រ
- កូដមួយដងតាម SMS — មិនសុវត្ថិភាពខ្លាំងប៉ុន្តែគាំទ្រជាសកល
- ការបញ្ជាក់តាមអ៊ីមែល — កូដបញ្ជាក់ផ្ញើទៅអ៊ីមែលដែលបានចុះឈ្មោះ
ការបើក TOTP សម្រាប់ការចូលប្រើគណនី
// ជំហានទី 1៖ ស្នើសុំការកំណត់ MFA
curl -X POST "https://api.smartmoneyapi.com/v1/account/mfa/enable" \
-H "Authorization: Bearer token"
// ការឆ្លើយតបរួមបញ្ចូល URL របស់ QR code
{
"qr_code_url": "https://...",
"secret": "JBSWY3DPEBLW64TMMQ...",
"backup_codes": ["12345678", ...]
}
MFA ក្នុងអំឡុងពេលប្រតិបត្តិការ API
ប្រតិបត្តិការខ្លះអាចទាមទារការបញ្ជាក់ MFA សូម្បីតែបន្ទាប់ពីការផ្ទៀងផ្ទាត់៖
// ការព្យាយាមប្រតិបត្តិការដែលគួរឱ្យរង្គាល (ការផ្លាស់ប្តូរកូនសោ)
curl -X POST "https://api.smartmoneyapi.com/v1/keys/rotate" \
-H "Authorization: Bearer token" \
-H "X-MFA-Token: mfa_challenge_abc123"
// ការឆ្លើយតប៖ MFA ត្រូវបានទាមទារ
{
"error": "mfa_required",
"mfa_token": "mfa_xyz789"
}
// ព្យាយាមម្តងទៀតជាមួយកូដ TOTP
curl -X POST "https://api.smartmoneyapi.com/v1/keys/rotate" \
-H "Authorization: Bearer token" \
-H "X-MFA-Code: 123456"
ការអនុវត្តសុវត្ថិភាពល្អបំផុត
ការផ្ទៀងផ្ទាត់គឺមានតែកម្លាំងដូចការអនុវត្តរបស់វា។ ធ្វើតាមការអនុវត្តទាំងនេះដើម្បីរក្សាសុវត្ថិភាព៖
ការគ្រប់គ្រងអាថ៌កំបាំង
- កុំដាក់អាថ៌កំបាំងទៅក្នុងការគ្រប់គ្រងកំណែ — ប្រើឯកសារ .env ជាមួយ .gitignore
- ប្រើអថេរបរិស្ថាន — ផ្ទុកពីប្រព័ន្ធគ្រប់គ្រងអាថ៌កំបាំងសុវត្ថិភាព
- ស្កេនឃ្លាំង — ប្រើឧបករណ៍ដូចជា TruffleHog, detect-secrets ដើម្បីរកកូនសោដែលបានបង្ហាញ
- សវនកម្មកំណត់ហេតុការចូលប្រើ — តាមដានអ្នកដែលបានចូលប្រើអាថ៌កំបាំង និងពេលវេលា
សុវត្ថិភាពក្នុងការដឹកជញ្ជូន
- តែងតែប្រើ HTTPS — កុំផ្ញើពាក្យសម្ងាត់តាមការតភ្ជាប់ដែលមិនបានអ៊ិនគ្រីប
- ផ្ទៀងផ្ទាត់វិញ្ញាបនបត្រ SSL — កុំបិទការផ្ទៀងផ្ទាត់វិញ្ញាបនបត្រក្នុងផលិតកម្ម
- ប្រើការជាប់វិញ្ញាបនបត្រ — សម្រាប់កម្មវិធីទូរស័ព្ទ ការពារការវាយប្រហារ MITM
- អនុវត្ត TLS 1.2+ — បិទពិធីការចាស់ៗ
ការគ្រប់គ្រងពាក្យសម្ងាត់
- ហាសអាថ៌កំបាំង — ផ្ទុក bcrypt ឬ Argon2 hashes កុំដាក់អត្ថបទធម្មតា
- បន្ថយអាយុកាល — រក្សាពាក្យសម្ងាត់ក្នុងអង្គចងចាំតែរយៈពេលដែលត្រូវការ
- សម្អាតទិន្នន័យដែលគួរឱ្យរង្គាល — សរសេរជាន់លើពាក្យសម្ងាត់យ៉ាងច្បាស់បន្ទាប់ពីប្រើ
- ប្រើបណ្ណាល័យសុវត្ថិភាព — កុំអនុវត្តគ្រីបតូក្រាហ្វីដោយខ្លួនឯង
កំណត់ហេតុ និងការតាមដាន
- កុំកំណត់ហេតុពាក្យសម្ងាត់ — លុបកូនសោក្នុងកំណត់ហេតុ ប្រើការលាក់កំណត់ហេតុ
- កំណត់ហេតុព្រឹត្តិការណ៍ផ្ទៀងផ្ទាត់ — តាមដានការព្យាយាមចូលប្រើដែលជោគជ័យ និងបរាជ័យ
- តាមដានការប្លែក — ជូនដំណឹងអំពីការចូលប្រើដែលមិនធម្មតា
- សវនកម្មការប្រើប្រាស់កូនសោ — តាមដានកូនសោដែលបានចូលប្រើទិន្នន័យអ្វី
លំនាំផ្ទៀងផ្ទាត់សហគ្រាស
ស្ថាប័នធំៗជាញឹកញាប់ទាមទារការគ្រប់គ្រងសុវត្ថិភាពបន្ថែម និងសមត្ថភាពគោលដៅ។
ការរួមបញ្ចូល SAML 2.0
សម្រាប់អតិថិជនសហគ្រាស Smart Money API គាំទ្រការរួមបញ្ចូល SAML 2.0 ជាមួយកម្មវិធីផ្ទៀងផ្ទាត់អត្តសញ្ញាណរបស់អ្នក (Okta, Azure AD ជាដើម)៖
- ការចូលប្រើតែមួយ (SSO) — អ្នកប្រើប្រាស់ផ្ទៀងផ្ទាត់តាមរយៈ IdP របស់ក្រុមហ៊ុនអ្នក
- ការផ្តល់ស្វ័យប្រវត្តិ — បង្កើត/បិទគណនីដោយផ្អែកលើសមាជិកភាពក្រុម
- ការអនុវត្ត — ទាមទារ SAML សម្រាប់ការចូលប្រើអ្នកប្រើប្រាស់ទាំងអស់
ការបញ្ជាក់ IP
កំណត់ការចូលប្រើ API ទៅកាន់អាសយដ្ឋាន IP ឬជួរ CIDR ជាក់លាក់៖
// បន្ថែម IP ទៅក្នុង whitelist
curl -X POST "https://api.smartmoneyapi.com/v1/account/ip-whitelist" \
-H "Authorization: Bearer token" \
-d '{
"cidr": "203.0.113.0/24",
"description": "Production servers"
}'
កំណត់ហេតុសាកល្បង និងការអនុលោមតាម
ផែនការសហគ្រាសរួមបញ្ចូលកំណត់ហេតុសាកល្បងពេញលេញសម្រាប់ការអនុលោមតាម៖
| ព្រឹត្តិការណ៍ |
ទិន្នន័យដែលបានកត់ត្រា |
| ការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ |
អ្នកប្រើប្រាស់, ពេលវេលា, ជោគជ័យ/បរាជ័យ, IP, ស្ថានភាព MFA |
| ប្រតិបត្តិការគន្លឹះ |
លេខសម្គាល់គន្លឹះ, សកម្មភាព, អ្នកចាប់ផ្តើម, ពេលវេលា |
| ការផ្លាស់ប្តូរគណនី |
អ្វីដែលបានផ្លាស់ប្តូរ, អ្នកដែលផ្លាស់ប្តូរ, ពេលវេលា, តម្លៃមុន/ក្រោយ |
| ការចូលប្រើទិន្នន័យ |
អ្នកប្រើប្រាស់, ចំណុចបញ្ចប់, វិសាលភាព, ពេលវេលា, ចំនួនកំណត់ត្រា |
ការដោះស្រាយបញ្ហាផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ
កំហុស API Key មិនត្រឹមត្រូវ
បញ្ហា៖ ទទួលបាន "401 Unauthorized - Invalid API Key"
ដំណោះស្រាយ៖
- ផ្ទៀងផ្ទាត់ទម្រង់គន្លឹះ (គួរចាប់ផ្តើមដោយ sk_test_ ឬ sk_live_)
- ពិនិត្យមើលចន្លោះខាងមុខ/ខាងក្រោយនៅក្នុងគន្លឹះ
- បញ្ជាក់ថាគន្លឹះមិនត្រូវបានបិទឬបង្វិល
- ផ្ទៀងផ្ទាត់ថាអ្នកកំពុងប្រើប្រាស់បរិស្ថានត្រឹមត្រូវ (គន្លឹះសាកល្បងសម្រាប់សាកល្បង, ពិតសម្រាប់ផលិតកម្ម)
- ពិនិត្យមើលការអនុញ្ញាតគន្លឹះ API ដែលត្រូវនឹងតម្រូវការចំណុចបញ្ចប់
កំហុស Token ផុតកំណត់
បញ្ហា៖ Bearer token ផុតកំណត់, សំណើបរាជ័យ
ដំណោះស្រាយ៖
- ប្រើ refresh token ដើម្បីទទួលបាន access token ថ្មី
- អនុវត្តការបន្តសោ refresh ដោយស្វ័យប្រវត្តិ 5 នាទីមុនពេលផុតកំណត់
- ផ្ទុក refresh token ដោយសុវត្ថិភាព (មិនមែននៅក្នុង localStorage សម្រាប់ SPAs)
- ដោះស្រាយការឆ្លើយតប 401 ដោយព្យាយាមលំហូរ refresh token
កំហុស CORS/Preflight
បញ្ហា៖ កម្មវិធីរុករកបិទសំណើដោយមានកំហុស CORS
ដំណោះស្រាយ៖
- ការហៅ API ពីកម្មវិធីរុករកត្រូវតែមកពីប្រភពដើមដែលបានដាក់ក្នុង whitelist
- បន្ថែមដែនរបស់អ្នកតាមរយៈផ្ទាំងគ្រប់គ្រង៖ Settings → CORS Origins
- កម្មវិធីរុករកផ្ញើសំណើ OPTIONS preflight ដោយស្វ័យប្រវត្តិ
- សម្រាប់ការអភិវឌ្ឍន៍, ប្រើ localhost:3000 ឬស្រដៀងគ្នា
ការប្រកួតប្រជែង MFA មិនបានបញ្ចប់
បញ្ហា៖ ប្រតិបត្តិការដែលតម្រូវឱ្យមាន MFA បរាជ័យទោះបីមានលេខកូដត្រឹមត្រូវ
ដំណោះស្រាយ៖
- ធានាថានាឡិកាម៉ាស៊ីនបម្រើត្រូវបានធ្វើសមកាលកម្ម (TOTP ពឹងផ្អែកលើពេលវេលា)
- លេខកូដមានសុពលភាពត្រឹមតែ 30 វិនាទី, បង្កើតថ្មី
- ប្រើលេខកូដបម្រុងប្រសិនបើកម្មវិធីផ្ទៀងផ្ទាត់មិនអាចប្រើបាន
- ការសង្គ្រោះគណនីអាចប្រើបានតាមរយៈអ៊ីមែលដែលបានចុះឈ្មោះ
អនុវត្តការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវដោយសុវត្ថិភាពឥឡូវនេះ
Smart Money API គាំទ្រការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវកម្រិតសហគ្រាសជាមួយ OAuth 2.0, JWT, MFA, និងការរួមបញ្ចូល SAML។ ការពារការរួមបញ្ចូល API របស់អ្នកជាមួយនឹងការអនុវត្តល្អបំផុតនៅក្នុងឧស្សាហកម្ម។
មើលផែនការសហគ្រាស
ត្រូវការ SAML, IP whitelisting, ឬការគាំទ្រដោយឯកជន? ទាក់ទងក្រុមលក់របស់យើង។