FixVibe
Covered by FixVibehigh

សុវត្ថិភាព JWT៖ ហានិភ័យនៃសញ្ញាសម្ងាត់ដែលមិនមានសុវត្ថិភាព និងការបាត់សុពលភាពនៃការទាមទារ

ZXCVFIXVIBESEG ២ JSON Web Tokens (JWTs) ផ្តល់នូវស្តង់ដារសម្រាប់ការផ្ទេរការទាមទារ ប៉ុន្តែសុវត្ថិភាពពឹងផ្អែកលើការបញ្ជាក់យ៉ាងម៉ត់ចត់។ ការខកខានក្នុងការផ្ទៀងផ្ទាត់ហត្ថលេខា ពេលវេលាផុតកំណត់ ឬទស្សនិកជនដែលមានបំណងអនុញ្ញាតឱ្យអ្នកវាយប្រហាររំលងការផ្ទៀងផ្ទាត់ ឬចាក់ថូខឹនឡើងវិញ។

CWE-347CWE-287CWE-613

ផលប៉ះពាល់អ្នកវាយប្រហារ

ZXCVFIXVIBESEG ៤ សុពលភាព JWT មិនត្រឹមត្រូវអនុញ្ញាតឱ្យអ្នកវាយប្រហារឆ្លងកាត់យន្តការផ្ទៀងផ្ទាត់ដោយក្លែងបន្លំការទាមទារ ឬប្រើថូខឹនដែលផុតកំណត់ [S1] ឡើងវិញ។ ប្រសិនបើម៉ាស៊ីនមេទទួលយកថូខឹនដោយគ្មានហត្ថលេខាត្រឹមត្រូវ អ្នកវាយប្រហារអាចកែប្រែបន្ទុក ដើម្បីបង្កើនសិទ្ធិ ឬក្លែងបន្លំអ្នកប្រើប្រាស់ណាមួយ [S1] ។ លើសពីនេះ ការខកខានក្នុងការអនុវត្តការទាមទារផុតកំណត់ (exp) អនុញ្ញាតឱ្យអ្នកវាយប្រហារប្រើនិមិត្តសញ្ញាដែលត្រូវបានសម្របសម្រួលដោយគ្មានកំណត់ [S1] ។

ZXCVFIXVIBESEG ៥

មូលហេតុ

ZXCVFIXVIBESEG ៦ JSON Web Token (JWT) គឺជារចនាសម្ព័ន្ធដែលមានមូលដ្ឋានលើ JSON ដែលត្រូវបានប្រើដើម្បីតំណាងឱ្យការទាមទារដែលត្រូវបានចុះហត្ថលេខាជាឌីជីថល ឬត្រូវបានការពារ [S1] ។ ការបរាជ័យផ្នែកសុវត្ថិភាពជាធម្មតាកើតចេញពីគម្លាតនៃការអនុវត្តចម្បងពីរ៖

ZXCVFIXVIBESEG ៧

  • ការទទួលយក JWTs ដែលគ្មានសុវត្ថិភាព៖ ប្រសិនបើសេវាកម្មមិនអនុវត្តការផ្ទៀងផ្ទាត់ហត្ថលេខាយ៉ាងតឹងរ៉ឹងទេ វាអាចដំណើរការ "Unsecured JWTs" ដែលហត្ថលេខាអវត្តមាន ហើយក្បួនដោះស្រាយត្រូវបានកំណត់ទៅជា "គ្មាន" [S1] ។ នៅក្នុងសេណារីយ៉ូនេះ ម៉ាស៊ីនមេជឿជាក់លើការទាមទារនៅក្នុងបន្ទុកដោយមិនផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវរបស់ពួកគេ [S1] ។

ZXCVFIXVIBESEG ៨

  • បាត់សុពលភាពការទាមទារ៖ ការទាមទារ exp (ពេលវេលាផុតកំណត់) កំណត់ពេលវេលានៅថ្ងៃ ឬក្រោយពេលដែល JWT មិនត្រូវទទួលយកសម្រាប់ដំណើរការ [S1]។ ការទាមទារ aud (ទស្សនិកជន) កំណត់អត្តសញ្ញាណអ្នកទទួលដែលមានបំណងនៃនិមិត្តសញ្ញា [S1] ។ ប្រសិនបើទាំងនេះមិនត្រូវបានពិនិត្យទេ នោះម៉ាស៊ីនមេអាចទទួលយកថូខឹនដែលផុតកំណត់ ឬត្រូវបានបម្រុងទុកសម្រាប់កម្មវិធីផ្សេង [S1] ។

ជួសជុលបេតុង

ZXCVFIXVIBESEG ១០

  • ពង្រឹងហត្ថលេខាគ្រីប៖ កំណត់រចនាសម្ព័ន្ធកម្មវិធីដើម្បីបដិសេធ JWT ណាមួយដែលមិនប្រើក្បួនដោះស្រាយការចុះហត្ថលេខាដ៏រឹងមាំដែលបានអនុម័តជាមុន (ដូចជា RS256)។

ZXCVFIXVIBESEG ១១

  • សុពលភាពនៃការផុតកំណត់៖ អនុវត្តការត្រួតពិនិត្យជាកាតព្វកិច្ច ដើម្បីធានាថាកាលបរិច្ឆេទ និងពេលវេលាបច្ចុប្បន្នគឺមុនម៉ោងដែលបានបញ្ជាក់នៅក្នុងពាក្យបណ្តឹង exp [S1] ។

ZXCVFIXVIBESEG ១២

  • ផ្ទៀងផ្ទាត់ទស្សនិកជន៖ ត្រូវប្រាកដថាការទាមទារ aud មានតម្លៃដែលកំណត់អត្តសញ្ញាណសេវាកម្មក្នុងតំបន់។ ប្រសិនបើសេវាកម្មមិនត្រូវបានកំណត់អត្តសញ្ញាណនៅក្នុងការទាមទារ aud និមិត្តសញ្ញាត្រូវតែត្រូវបានបដិសេធ [S1] ។

ZXCVFIXVIBESEG ១៣

  • ការពារការចាក់ឡើងវិញ៖ ប្រើលេខសម្គាល់ jti (JWT ID) ដើម្បីផ្តល់អត្តសញ្ញាណសម្គាល់តែមួយគត់ចំពោះនិមិត្តសញ្ញានីមួយៗ ដែលអនុញ្ញាតឱ្យម៉ាស៊ីនមេតាមដាន និងបដិសេធថូខឹនដែលបានប្រើឡើងវិញ [S1] ។

យុទ្ធសាស្ត្រស្វែងរក

ZXCVFIXVIBESEG ១៥ ភាពងាយរងគ្រោះនៅក្នុងការគ្រប់គ្រង JWT អាចត្រូវបានកំណត់អត្តសញ្ញាណដោយការវិភាគរចនាសម្ព័ន្ធនិមិត្តសញ្ញា និងឥរិយាបថឆ្លើយតបរបស់ម៉ាស៊ីនមេ៖

  • ការត្រួតពិនិត្យបឋមកថា ៖ ពិនិត្យបឋមកថា alg (ក្បួនដោះស្រាយ) ដើម្បីធានាថាវាមិនត្រូវបានកំណត់ទៅជា "គ្មាន" និងប្រើស្តង់ដារគ្រីបគ្រីបដែលរំពឹងទុក [S1] ។
  • ការផ្ទៀងផ្ទាត់ការទាមទារ៖ ការបញ្ជាក់ពីវត្តមាន និងសុពលភាពនៃ exp (ផុតកំណត់) និងការអះអាង aud (ទស្សនិកជន) នៅក្នុង JSON payload [S1] ។

ZXCVFIXVIBESEG ១៨

  • ការធ្វើតេស្តសុពលភាព៖ ការធ្វើតេស្តប្រសិនបើម៉ាស៊ីនមេបដិសេធត្រឹមត្រូវនូវសញ្ញាសម្ងាត់ដែលបានផុតកំណត់ដោយយោងតាមការអះអាងរបស់ exp ឬត្រូវបានបម្រុងទុកសម្រាប់ទស្សនិកជនផ្សេងគ្នាដូចដែលបានកំណត់ដោយ aud អះអាង [S1] ។