Django HTTP அங்கீகாரம்: உங்கள் பார்வைகளை எளிதாக பாதுகாக்கவும்

இந்த படிப்படியான வழிகாட்டியுடன் Django பார்வைகளில் HTTP அங்கீகாரத்தை செயல்படுத்தி, உங்கள் வலை பயன்பாடுகள் மற்றும் API களின் பாதுகாப்பை மேம்படுத்துவது எப்படி என்பதை அறிந்து கொள்ளுங்கள்.

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

ஏன் HTTP அங்கீகாரம்?

HTTP அங்கீகாரம் உங்கள் Django பார்வைகளை பாதுகாப்பதற்கான எளிமையான ஆனால் பயனுள்ள வழியை வழங்குகிறது. இது குறிப்பாக பயனுள்ளதாக இருக்கும் போது:

  1. முழு தளத்தின் அங்கீகார அமைப்பை பாதிக்காமல் குறிப்பிட்ட பார்வைகளை பாதுகாக்க வேண்டும்.
  2. பாதுகாப்பான அணுகல் தேவைப்படும் API களை உருவாக்குகிறீர்கள்.
  3. RSS ஊட்ட வாசிப்பான்கள் அல்லது பிற நிரல் வாடிக்கையாளர்களுக்கான அங்கீகாரத்தை ஆதரிக்க விரும்புகிறீர்கள்.

Django இல் HTTP அங்கீகாரத்தை செயல்படுத்துதல்

செயல்படுத்துதலில் ஆழ்ந்து பார்ப்போம். முதலில், உங்கள் Django திட்டத்தின் ரூட் கோப்பகத்தில் httpauth.py என்ற கோப்பை உருவாக்கி பின்வரும் குறியீட்டைச் சேர்க்கவும்:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import base64
from django.contrib.auth.models import User
from django.http import HttpResponse
from django.contrib.auth import authenticate, login

def view_or_basicauth(view, request, test_func, realm="", *args, **kwargs):
    # ... [ஏற்கனவே உள்ள செயல்பாட்டு உள்ளடக்கத்தை வைத்திருக்கவும்]

def logged_in_or_basicauth(realm=""):
    # ... [ஏற்கனவே உள்ள செயல்பாட்டு உள்ளடக்கத்தை வைத்திருக்கவும்]

def has_perm_or_basicauth(perm, realm=""):
    # ... [ஏற்கனவே உள்ள செயல்பாட்டு உள்ளடக்கத்தை வைத்திருக்கவும்]

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

உங்கள் பார்வைகளில் HTTP அங்கீகாரத்தைப் பயன்படுத்துதல்

இப்போது நமது அங்கீகார உதவியாளர்கள் உள்ளன, அவற்றை Django பார்வையில் எவ்வாறு பயன்படுத்துவது என்பதைப் பார்ப்போம்:

1
2
3
4
5
6
from httpauth import logged_in_or_basicauth

@logged_in_or_basicauth()
def secure_view(request, type):
    # உங்கள் பார்வை தர்க்கம் இங்கே
    pass

உங்கள் பார்வைக்கு @logged_in_or_basicauth() டெகரேட்டரைச் சேர்ப்பதன் மூலம், அங்கீகரிக்கப்பட்ட பயனர்கள் மட்டுமே அதை அணுக முடியும் என்பதை உறுதி செய்கிறீர்கள். ஒரு பயனர் உள்நுழையவில்லை என்றால், HTTP அடிப்படை அங்கீகார சான்றுகளை வழங்குமாறு கேட்கப்படுவார்கள்.

மேம்பட்ட பயன்பாடு: அனுமதி அடிப்படையிலான அங்கீகாரம்

மேலும் நுண்ணிய கட்டுப்பாட்டிற்கு, குறிப்பிட்ட அனுமதிகளை கோருவதற்கு has_perm_or_basicauth டெகரேட்டரைப் பயன்படுத்தலாம்:

1
2
3
4
5
6
from httpauth import has_perm_or_basicauth

@has_perm_or_basicauth('app.view_sensitive_data')
def sensitive_data_view(request):
    # உங்கள் பார்வை தர்க்கம் இங்கே
    pass

இது ‘app.view_sensitive_data’ அனுமதி உள்ள பயனர்கள் மட்டுமே பார்வையை அணுக முடியும் என்பதை உறுதி செய்கிறது.

முடிவுரை

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

HTTP அடிப்படை அங்கீகாரம் செயல்படுத்த எளிதானது என்றாலும், பரிமாற்றத்தின் போது சான்றுகள் குறியாக்கம் செய்யப்படுவதை உறுதி செய்ய HTTPS மூலம் பயன்படுத்துவது சிறந்தது என்பதை நினைவில் கொள்ளுங்கள்.

உங்கள் Django திட்டங்களில் HTTP அங்கீகாரத்தை செயல்படுத்தியுள்ளீர்களா? உங்கள் அனுபவங்கள் அல்லது உங்களுக்கு இருக்கக்கூடிய கேள்விகளைப் பற்றி கேட்க விரும்புகிறேன். மேலும் விவாதிக்க அல்லது திறந்த மூல திட்டங்களில் ஒத்துழைக்க [email protected] இல் என்னைத் தொடர்பு கொள்ள தயங்க வேண்டாம்!

மகிழ்ச்சியான குறியீடு, மற்றும் பாதுகாப்பாக இருங்கள்!

Writing about the internet