ភាពងាយរងគ្រោះ OAuth | វិធីអនុវត្តការអនុញ្ញាតប្រកបដោយសុវត្ថិភាពនៅក្នុងកម្មវិធីគេហទំព័ររបស់អ្នក

Anonim
ភាពងាយរងគ្រោះ OAuth | វិធីអនុវត្តការអនុញ្ញាតប្រកបដោយសុវត្ថិភាពនៅក្នុងកម្មវិធីគេហទំព័ររបស់អ្នក 2740_1

អត្ថបទនេះនឹងដោះស្រាយជាមួយភាពងាយរងគ្រោះរបស់ OATH ដែលល្បីឈ្មោះ។ អ្នកអានក៏នឹងរៀនពីរបៀបអនុវត្តការអនុញ្ញាតដែលមានសុវត្ថិភាពនិងសុវត្ថិភាពនៅក្នុងកម្មវិធីគេហទំព័រ។

Oauth គឺជាពិធីសារដែលអាចទុកចិត្តបានប៉ុន្តែកំរិតសន្តិសុខរបស់វាភាគច្រើនអាស្រ័យលើការយល់ដឹងអំពីអ្នកអភិវឌ្ឍន៍គេហទំព័រនៅពេលអនុវត្តការអនុញ្ញាត។ នេះធ្វើឱ្យប្រធានបទនេះមានសារៈសំខាន់ខ្លាំងណាស់សម្រាប់អ្នកជំនាញផ្នែកសន្តិសុខព័ត៌មាន។ ពួកគេត្រូវការផ្តល់នូវការការពារគណនេយ្យរបស់អ្នកប្រើប្រាស់របស់ពួកគេកម្រិតខ្ពស់បំផុត។ វាដល់ពេលដែលត្រូវស្គាល់អ្នកអនុវត្តដែលមានប្រសិទ្ធិភាពដែលនឹងជួយកាត់បន្ថយគ្រោះថ្នាក់នៃការលក់អូធូដែលលក់មិនល្អ។

ការនេនាមអាេយស្គាល់

ពិធីសារ OAutH 2.0 បច្ចុប្បន្នត្រូវបានប្រើយ៉ាងទូលំទូលាយនៅក្នុងកម្មវិធីផ្សេងៗ។ ការប្រើប្រាស់វាចំណុចប្រទាក់អ្នកប្រើដែលមានភាពងាយស្រួលអាចប្រើបានការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវនិងការអនុញ្ញាតកាន់តែងាយស្រួលបើប្រៀបធៀបទៅនឹងវិធីសាស្ត្រប្រពៃណីសម្រាប់បញ្ចូលឈ្មោះអ្នកប្រើនិងពាក្យសម្ងាត់។ ជាមួយនឹងការអនុវត្តត្រឹមត្រូវនិងគិតគូរពិធីការ OAUTH នឹងមានសុវត្ថិភាពជាងការអនុញ្ញាតប្រពៃណីពីព្រោះអ្នកប្រើប្រាស់មិនចាំបាច់ចែករំលែកទិន្នន័យគណនេយ្យរបស់ពួកគេជាមួយកម្មវិធីរបស់ភាគីទីបីដើម្បីទទួលបានធនធានជាក់លាក់។ អ្នកប្រើប្រាស់ច្រើនតែចូលចិត្តចូលដោយប្រើគណនី Google របស់ពួកគេហ្វេសប៊ុកឬ LinkedIn ជំនួសឱ្យការបង្កើតគណនីថ្មីរាល់ពេលដែលអ្នកត្រូវការចុះឈ្មោះនៅលើគេហទំព័រមួយចំនួន។ ដូច្នេះពិធីការ OAUTH មានភាពងាយស្រួលក្នុងជីវិតរបស់យើង។

ជាទូទៅអ្នកផ្តល់សេវា OAuth មានប្រជាប្រិយភាពគឺគួរឱ្យទុកចិត្តណាស់។ ចូលជាមួយគណនី Google ឬ Facebook ជម្រុញឱ្យមានអារម្មណ៍សុវត្ថិភាពជាក់លាក់ហើយវាត្រឹមត្រូវ។ ពិធីសារនេះត្រូវបានសាកល្បងដោយប្រុងប្រយ័ត្នដោយអ្នកជំនាញ។ ភាពងាយរងគ្រោះទាំងអស់ដែលមានភាពងាយរងគ្រោះតែងតែត្រូវបានកែតម្រូវយ៉ាងឆាប់រហ័សដោយក្រុមអភិវឌ្ឍន៍។ ទោះយ៉ាងណាក៏ដោយវាគួរឱ្យកត់សម្គាល់ថាអារម្មណ៍នៃសុវត្ថិភាពពេញលេញអាចមិនពិត។

អ្នកផ្តល់សេវា OAuth បានទុកឱ្យកម្មវិធីអ្នកអភិវឌ្ឍន៍នូវហេតុផលជាច្រើនដើម្បីទែនសុវត្ថិភាពកម្មវិធីរបស់ពួកគេ។ តាមពិតសេវាកម្មអូវធូដែលបានការពារដំបូងត្រូវបានអនុវត្តមិនត្រឹមត្រូវក្នុងដំណើរការនៃការតំឡើងរបស់វាអាចក្លាយជាគោលដៅងាយស្រួលសម្រាប់អ្នកឈ្លានពាន។ ការខ្វល់ខ្វាយបែបនេះនឹងនាំឱ្យចោរកម្មទិន្នន័យផ្ទាល់ខ្លួនរបស់អ្នកប្រើប្រាស់។

បន្ទាប់មកទៀតអ្នកគួរតែពិចារណាលើភាពងាយរងគ្រោះទូទៅបំផុតដែលបានជួបប្រទះនៅក្នុងកម្មវិធីរបស់ភាគីទីបីដែលអនុវត្តពិធីការ Oauth ដើម្បីផ្តល់សិទ្ធិអ្នកប្រើប្រាស់របស់ពួកគេ។ វាត្រូវតែត្រូវបានគេចងចាំថាពិធីការខ្លួនវាមានសុវត្ថិភាពនិងអាចទុកចិត្តបាន។ មានតែបន្ទាប់ពីការអនុវត្តមិនត្រឹមត្រូវវាងាយរងគ្រោះចំពោះការវាយប្រហាររបស់ពួក Hacker ។

ការលួច Oauth ToCkekey ដោយប្រើបឋមកថាអ្នកយោង

នៅពេលដែលពាក្យសុំស្នើសុំការអនុញ្ញាតក្នុងនាមអ្នកប្រើនៅម៉ាស៊ីនមេ OAuth របស់មនុស្សម្នាក់ទទួលបានលេខកូដដើម្បីបញ្ចូលហើយផ្ញើត្រឡប់ទៅម៉ាស៊ីនមេវិញសម្រាប់ការត្រួតពិនិត្យជាបន្តបន្ទាប់។ ប្រសិនបើក្នុងអំឡុងពេលការងារអ្នកប្រើនឹងត្រូវបានបញ្ជូនបន្តទៅទំព័រមួយផ្សេងទៀតលេខកូដនឹងត្រូវបានមើលឃើញនៅក្នុងបឋមកថា "អ្នកយោង" នៃការស្នើសុំ HTTP ។ ដូច្នេះលេខកូដនេះនឹងធ្លាក់ចុះនៅលើគេហទំព័រខាងក្រៅដែលនឹងគំរាមកំហែងទិន្នន័យអ្នកប្រើប្រាស់ដែលបានចុះឈ្មោះនៅលើម៉ាស៊ីនមេ OAuth ។

សម្គាល់ៈបឋមកថាអ្នកយោងគឺជាបឋមកថា HTTP, វាបញ្ជូនម៉ាស៊ីន URL ដែលសំណើត្រូវបានផ្ញើ។

ដើម្បីបន្ទន់ផលវិបាកនៃភាពងាយរងគ្រោះនេះអ្នកអភិវឌ្ឍន៍ត្រូវតែធ្វើឱ្យប្រាកដថាកម្មវិធីគេហទំព័ររបស់វាមិនមានការចាក់ HTML ណាមួយឡើយ។ ប្រសិនបើការចាក់ថ្នាំត្រូវបានរកឃើញអ្នកវាយប្រហារអាចកំណត់ស្លាករូបភាពយ៉ាងងាយស្រួលទៅម៉ាស៊ីនមេគេហទំព័ររបស់វាហើយរកវិធីប្តូរទិសអ្នកប្រើនៅលើវា។ ដូច្នេះគាត់នឹងទទួលបានឱកាសលួចលេខកូដពីបឋមកថា "អ្នកយោង" នៃការស្នើសុំ HTTP ។

ការលួច Oauth ToCkekey ដោយប្រើប៉ារ៉ាម៉ែត្រប្តូរទិស_uri

កម្មវិធីនេះផ្តួចផ្តើមដំណើរការនៃការអនុញ្ញាតដោយផ្ញើសំណើទៅម៉ាស៊ីនមេ OAuth:

https://www.example.com/signin/authorizeah.3 ម៉ោងបន្ថែម។

សំណួរនេះតែងតែមានប៉ារ៉ាម៉ែត្រ "Redirect_uri" ដែលត្រូវបានប្រើដោយម៉ាស៊ីនបម្រើ OAuth ដើម្បីផ្ញើថូខឹនត្រឡប់ទៅកម្មវិធីវិញបន្ទាប់ពីអ្នកប្រើប្រាស់បានទទួលការយល់ព្រមពីគាត់។ ប្រសិនបើតម្លៃនៃប៉ារ៉ាម៉ែត្រនេះមិនត្រូវបានគ្រប់គ្រងឬមិនបានត្រួតពិនិត្យអ្នកវាយប្រហារអាចផ្លាស់ប្តូរវាបានយ៉ាងងាយស្រួលហើយប្តូរទិសដៅទៅគេហទំព័ររបស់ខ្លួនដែលវាប្រើកម្មវិធីពិសេសសម្រាប់ដំណើរការនិមិត្តសញ្ញានិងទទួលបានធនធានមានកំណត់។

https://www.example.com/signin/authorizeazy.22s.3 ម៉ោង 3. - Redirect_urii=htpps://localhost.evil.com ។

ពេលខ្លះ URLs ស្រដៀងគ្នាត្រូវបានរារាំង។ អ្នកវាយប្រហារអាចប្តូរទិសទិន្នន័យដែលបានទទួលនៅលើ URL បើកដូចនេះ:

https://www.example.com/oautireque.srforize.srfoute.srfout_urii=htpps://Accounts.google.com ។

ឬនេះ:

https://www.example.com/oaututh2/aiuthorize?

នៅពេលអនុវត្ត Oauth អ្នកមិនអាចបញ្ចូលដែនទាំងមូលនៅក្នុងបញ្ជីពណ៌សបានទេ។ មានតែ URLs មួយចំនួនប៉ុណ្ណោះដែលគួរតែត្រូវបានបន្ថែមទៅ "Redirect_uri" មិនបានបញ្ជូនសំណើរសុំឱ្យបើកការប្តូរទិសទេ។

ការក្លែងបន្លំនៃសំណើរឆ្លងកាត់

ការក្លែងបន្លំសំណើរប្រសព្វអាចកើតឡើងនៅពេលដែលអ្នកវាយប្រហារទទួលបានជោគជ័យក្នុងការធ្វើឱ្យជនរងគ្រោះចុចលើតំណរបស់គាត់ហើយដូច្នេះដើម្បីបង្កើតសំណើដែលថាគាត់នឹងមិនបង្កើតឱ្យមាន។ ការក្លែងបន្លំនៃសំណើឆ្លងកាត់ជាទូទៅត្រូវបានបន្ទន់ជាមួយនិមិត្តសញ្ញា CSRF ដែលត្រូវបានផ្សារភ្ជាប់ជាមួយនឹងសម័យអ្នកប្រើ។ វាជួយឱ្យកម្មវិធីពិនិត្យមើលបុគ្គលរបស់អ្នកដែលបានផ្ញើសំណើនេះ។ ប៉ារ៉ាម៉ែត្រ "រដ្ឋ" នៅក្នុងពិធីការ OAUTH បម្រើការជានិមិត្តសញ្ញា CSRF ។

វាសមនឹងមើលថាតើការវាយប្រហារ CSRF ត្រូវបានអនុវត្តយ៉ាងដូចម្តេចនៅ Oauth និងជាប៉ារ៉ាម៉ែត្រ "រដ្ឋអាចត្រូវបានប្រើដើម្បីកាត់បន្ថយផលប៉ះពាល់នៃភាពងាយរងគ្រោះ។

Hacker បើកកម្មវិធីគេហទំព័រមួយហើយដាក់ចេញនូវដំណើរការផ្តល់សិទ្ធិក្នុងការទទួលបានអ្នកផ្តល់សេវាកម្មដោយប្រើ OAUTH ។ ពាក្យសុំស្នើសុំឱ្យអ្នកផ្តល់សេវាដើម្បីទទួលបាននូវតម្រូវការដែលត្រូវផ្តល់ជូន។ អ្នកវាយប្រហារនឹងត្រូវបានបញ្ជូនបន្តទៅគេហទំព័រអ្នកផ្តល់សេវាដែលអ្នកត្រូវបញ្ចូលឈ្មោះអ្នកប្រើនិងពាក្យសម្ងាត់របស់អ្នកដើម្បីផ្តល់សិទ្ធិអនុញ្ញាត។ ផ្ទុយទៅវិញ hacker ចាប់និងការពារសំណើនេះហើយរក្សាទុក URL របស់វា។ Hacker ដូចម្ដេចបានបណ្តាលឱ្យជនរងគ្រោះបើក URL នេះ។ ប្រសិនបើជនរងគ្រោះចូលក្នុងប្រព័ន្ធរបស់អ្នកផ្តល់សេវាដោយប្រើគណនីរបស់វាបន្ទាប់មកអត្តសញ្ញាណប័ណ្ណរបស់វានឹងត្រូវបានប្រើដើម្បីចេញក្រមការអនុញ្ញាត។ ការផ្លាស់ប្តូរលេខកូដអនុញ្ញាតការចូលប្រើនិមិត្តសញ្ញាចូលប្រើ។ ឥឡូវគណនី Hacker នៅក្នុងពាក្យសុំត្រូវបានអនុញ្ញាត។ វាអាចចូលប្រើគណនីរបស់ជនរងគ្រោះ។

ដូច្នេះតើខ្ញុំអាចការពារស្ថានភាពនេះដោយប្រើប៉ារ៉ាម៉ែត្រ "រដ្ឋ" យ៉ាងដូចម្តេច?

ពាក្យសុំត្រូវតែបង្កើតតម្លៃដែលផ្អែកលើគណនីប្រភព (ឧទាហរណ៍ប្រើកូនសោវេនវេនអ្នកប្រើ) ។ វាមិនសំខាន់អ្វីដែលវាគឺជារឿងសំខាន់គឺថាតម្លៃគឺមានតែមួយគត់ហើយបង្កើតដោយប្រើព័ត៌មានឯកជនអំពីអ្នកប្រើប្រាស់ដើម។ វាត្រូវបានចាត់ឱ្យទៅប៉ារ៉ាម៉ែត្រ "រដ្ឋ" ។

តម្លៃនេះត្រូវបានបញ្ជូនទៅអ្នកផ្តល់សេវាកម្មនៅពេលបញ្ជូនបន្ត។ ឥឡូវនេះអ្នកលួចបានអញ្ជើញជនរងគ្រោះឱ្យបើក URL ដែលគាត់បានរក្សាទុក។

លេខកូដអនុញ្ញាតត្រូវបានចេញហើយបញ្ជូនត្រឡប់មកអតិថិជនវិញក្នុងសម័យប្រជុំរួមជាមួយប៉ារ៉ាម៉ែត្រ "រដ្ឋ" ។

អតិថិជនបង្កើតតម្លៃប៉ារ៉ាម៉ែត្រដោយផ្អែកលើព័ត៌មានសម័យហើយប្រៀបធៀបវាជាមួយនឹងតម្លៃ "រដ្ឋ" ដែលត្រូវបានផ្ញើពីសំណើរសុំការអនុញ្ញាតទៅអ្នកផ្តល់សេវា។ តម្លៃនេះមិនត្រូវគ្នានឹងប៉ារ៉ាម៉ែត្រ "រដ្ឋ" ក្នុងសំណួរទេព្រោះវាត្រូវបានបង្កើតតែនៅលើមូលដ្ឋាននៃព័ត៌មានអំពីសម័យបច្ចុប្បន្នប៉ុណ្ណោះ។ ជាលទ្ធផលតម្លៃដែលទទួលបានមិនត្រូវបានទទួលយកដោយប្រព័ន្ធទេ។

ភាពងាយរងគ្រោះផ្សេងទៀតត្រូវបានរកឃើញនៅពេលអនុវត្ត Oauth រួមមានសមត្ថភាពក្នុងការអនុវត្តន៍ XSS (Schirect_uri "ការកំណត់កូនសោឯកជន Oauth (គ្រាប់ចុចអាចទទួលបានការរំលោភលើកម្មវិធីទូរស័ព្ទ) និងការរំលោភច្បាប់លេខកូដអនុញ្ញាត (នៅពេលណា លេខកូដអនុញ្ញាតអាចត្រូវបានប្រើច្រើនជាងម្តងក្នុងពេលចេញថូខឹនចូលច្រើនដង) ។ ភាពងាយរងគ្រោះទាំងនេះមិនសូវមានជាទូទៅតិចជាងអ្វីដែលបានពិពណ៌នាខាងលើទេប៉ុន្តែវាមិនធ្វើឱ្យពួកគេមានគ្រោះថ្នាក់តិចទេ។ អ្នកអភិវឌ្ឍន៍គួរតែដឹងពីការអនុវត្តចាំបាច់ទាំងអស់ដើម្បីធានាបាននូវប្រតិបត្តិការដែលអាចទុកចិត្តបាននៃកម្មវិធីគេហទំព័ររបស់ខ្លួន។

អ្នកនិពន្ធអត្ថបទដែលបានបកប្រែ: ស៊ីម៉ូនសាលីបាប៊ីបាប៊ី។

សំខាន់ណាស់! ព័ត៌មានសម្រាប់គោលបំណងសិក្សា។ សូមអនុលោមតាមច្បាប់ហើយមិនអនុវត្តព័ត៌មាននេះសម្រាប់គោលបំណងខុសច្បាប់ឡើយ។

សម្ភារៈគួរឱ្យចាប់អារម្មណ៍បន្ថែមទៀតនៅលើស៊ីស៊ីស៊ីខប។ ជាវសម្រាប់យើង: ហ្វេសប៊ុក | VK | Twitter | Instagram | តេឡេក្រាម | ហ្សិន | អវីសារាន់ អាយស៊ីស៊ីធី | YouTube | ជីពចរ។

អាន​បន្ថែម