𝗖𝗼𝗻𝗰𝘂𝗿𝗿𝗲𝗻𝘁 𝗟𝗼𝗴𝗶𝗻 𝗦𝗲𝗰𝘂𝗿𝗶𝘁𝘆 (ஒரே நேரத்தில் உள்நுழைவதற்கான பாதுகாப்பு)

வரம்பற்ற உள்நுழைவுகள் (logins) கடுமையான வணிகத் தர்க்கக் குறைபாடுகளை (business logic flaws) மறைக்கக்கூடும்.

ஒரு பயனர் மடிக்கணினியில் உள்நுழைகிறார். சில வினாடிகளுக்குப் பிறகு, அதே கணக்கு ஒரு வேறு உலாவியில் (browser) உள்நுழைகிறது. பிறகு ஒரு மொபைல் சாதனம். பிறகு ஒரு API கிளையண்ட். அனைத்தும் சரியாக வேலை செய்கின்றன.

பல செயலிகள் பல சாதனங்களை ஆதரிப்பதால் இது சரியாகத் தோன்றலாம். ஆனால் நீங்கள் கேட்க வேண்டிய கேள்வி: ஒவ்வொரு செயலியும் வரம்பற்ற அமர்வுகளை (sessions) அனுமதிக்க வேண்டுமா?

சில அமைப்புகளில், பல அமர்வுகள் ஒரு வசதியாகும் (feature). மற்றவற்றில், தாக்குபவர்கள் மறைந்திருக்கப் பயன்படுத்தும் ஒரு குறைபாடாகும். இது ஒரு வணிகத் தர்க்க பாதிப்பு (business logic vulnerability). குறியீடு (code) வடிவமைக்கப்பட்டபடி வேலை செய்கிறது, ஆனால் அந்த வடிவமைப்பே பலவீனமாக உள்ளது.

வித்தியாசம்: • பாரம்பரிய பிழைகள் (Traditional bugs) குறியீட்டுத் தவறுகளைப் பயன்படுத்துகின்றன. • வணிகத் தர்க்கப் பிழைகள் (Business logic bugs) வடிவமைப்பு முடிவுகளைப் பயன்படுத்துகின்றன.

ஒரு திரைப்பட ஸ்ட்ரீமிங் சேவையை நினைத்துப் பாருங்கள். ஒரு சந்தா (subscription) பத்து பேர் ஒரே நேரத்தில் பார்ப்பதற்கு அனுமதித்தால், உள்நுழைவு அமைப்பு சரியாக வேலை செய்கிறது. ஆனால் வணிக விதி (business rule) தோல்வியடைகிறது.

இது வங்கிச் சேவைகள், நிர்வாகப் பலகைகள் (admin panels) மற்றும் SaaS தயாரிப்புகளுக்கும் பொருந்தும்.

இதை எவ்வாறு சோதனை செய்வது:

அதிக பாதுகாப்பு தேவைப்படும் செயலிகள் பெரும்பாலும் இந்த விதிகளைப் பின்பற்றுகின்றன:

ஒரு தாக்குபவர் உங்கள் விவரங்களைத் திருடிவிட்டால், நீங்கள் வரம்பற்ற அமர்வுகளை அனுமதித்தால், அவர் எப்போதும் உள்நுழைந்தே இருக்க முடியும். உண்மையான பயனர் செயல்பாட்டில் இருக்கும்போதே அவரும் செயல்பாட்டில் இருப்பார். இருவரில் யாருக்கும் அந்த ஊடுருவல் தெரியாது.

சூழலே முக்கியமானது. பல அமர்வுகள் தேவைப்படும் செயலிகள்:

கடுமையான கட்டுப்பாடு தேவைப்படும் செயலிகள்:

இதை எவ்வாறு சரி செய்வது:

SQL injection போன்ற குறியீட்டுப் பிழைகளை மட்டும் தேடாதீர்கள். உங்கள் செயலி செய்வதற்கும் உங்கள் வணிகத்திற்குத் தேவைப்படுவதற்கும் இடையிலான இடைவெளிகளைத் தேடுங்கள்.

இன்று உங்கள் அமர்வு கொள்கையை (session policy) மறுஆய்வு செய்யுங்கள். உங்கள் மிகப்பெரிய ஆபத்து முறிந்த குறியீடு (broken code) அல்ல; அது முறிந்த தர்க்கமாக (broken logic) இருக்கலாம்.

ஆதாரம்: https://dev.to/arashad_dodhiya_0e4bdba5a/concurrent-login-security-how-to-check-whether-multiple-sessions-are-allowed-1839