5 Django Packages สำหรับสร้าง Apps ให้มีความปลอดภัยยิ่งขึ้น
24-พ.ค.-24
คัมภีร์เทพ IT
ในการพัฒนา Website ความปลอดภัยถือเป็นสิ่งที่สำคัญสูงสุดโดยเฉพาะในเรื่อง Access Control และ Permissions แม้ว่า Django จะเป็น Framework ที่ค่อนข้างเสถียร แต่การปรับปรุง Authorization Infrastructure มักจะต้องใช้ Tool พิเศษบางตัว และบทความนี้จำเป็น 5 Django Packages สำหรับสร้าง Apps ให้มีความปลอดภัยยิ่งขึ้น
Django-Guardian คือ การนำการ Object Permissions ไปใช้สำหรับ Django ที่มี Authentication Backend เพิ่มเติมไว้ให้
ลองนึกภาพว่า Django Application ของคุณเปรียบเป็น ปราสาทที่มีห้องต่าง ๆ โดยแต่ละห้องก็จะมีกุญแจของมัน และ Django Guardian ก็เปรียบเสมือนผู้ดูแลที่ชาญฉลาดของกุญแจเหล่านั้น ซึ่งจะช่วยให้คุณสามารถควบคุมได้ว่า ใครที่สามารถเข้าถึงแต่ละห้องและสามารถทำอะไรภายในห้องได้บ้าง
ในปราสาทของคุณ (Django App) คุณมีห้อง (Models) และบางครั้งคุณก็ต้องการให้ Users บางรายมีสิทธิ์พิเศษในการเข้าถึงได้ Django Guardian จะเข้ามาเป็นผู้ดูแล Access Keys เหล่านั้น เพื่อให้คุณตัดสินใจได้ว่า ใครที่สามารถเข้าห้องไหนได้บ้าง
นอกจากนี้ มันยังถูกใช้งานสำหรับ Permission ที่มีความละเอียดมากขึ้น แทนที่จะใช้เพียง Permission ที่เป็นพื้นฐาน เช่น “view” หรือ “edit” เป็นต้น Django Guardian จะช่วยให้สามารถ Control ได้ละเอียดมากขึ้น ตัวอย่างเช่น คุณสามารถตัดสินใจได้ว่า User สามารถดูห้องหนึ่งได้ แต่ดูอีกห้องหนึ่งไม่ได้ หรือแก้ไขเฉพาะบางส่วนของห้องได้หรือไม่
Django-Oauth-Toolkit เป็น Python Library ที่ช่วยให้ Developer สามารถนำ OAuth 2.0 ไปใช้งานใน Django Applications ของพวกเขาได้ มันมีชุดของ Tools ที่ครอบคลุมสำหรับจัดการในเรื่องของ User Authentication, Authorization และ Token Management
ลองนึกภาพว่า คุณมี Club ที่มี Content พิเศษ และต้องการแชร์กับผู้คนอย่างปลอดภัย คุณต้องมีระบบเพื่อให้ผู้คนลงชื่อเข้าใช้ และเข้าถึง Content ได้ก็ต่อเมื่อได้รับอนุญาตเท่านั้น
Django-Oauth-Toolkit เป็นเหมือนคนที่คอยเฝ้า Club ของคุณ มันเป็น Tool ที่ช่วยคุณในการสร้าง Authorization System ที่มีความปลอดภัยสำหรับ Django Web Applications ของคุณ มันใช้มาตรฐานที่ได้รับการยอมรับเป็นอย่างดีที่เรียกว่า OAuth2 ซึ่งบริษัทใหญ่ ๆ อย่าง Google และ Facebook ใช้กันอย่างแพร่หลาย
และนี่ก็คือ วิธีการทำงาน:
- Apps Register กับ System ของคุณ: เช่นเดียวกับสมาชิก Club ของคุณ Applications จำเป็นต้องลงทะเบียนกับ Django-Oauth-Toolkit เพื่อเข้าถึง แล้วมันจะให้ข้อมูล เช่น ชื่อ และ Resources ที่ต้องการจะเข้าถึง
- Users Grant Permissions: เมื่อ User พยายามเข้าถึงสิ่งที่ถูกป้องกันจาก Django-Oauth-Toolkit ระบบก็จะร้องขอ Permission จาก User ซึ่งเปรียบเหมือนกับ การแสดงบัตรประจำตัวของคุณให้คนเผ้า Club
- Access Granted หรือ Denied: หาก User ได้รับ Permission เจ้า Django-Oauth-Toolkit ก็จะให้ Token พิเศษแก่ Application โดย Token นี้จะทำหน้าที่เหมือนกุญแจที่ช่วยให้ Application สามารถเข้าถึง Resources ที่ได้รับการป้องกัน หาก User ไม่ได้รับ Permission ตัว Application ก็จะปฏิเสธ User ในการเข้าถึง
3. Django OML
Django-OML ซึ่งย่อมาจาก “Object Moderation Layer” เป็น Python Library ที่ช่วยให้ Developers สามารถนำ Moderation Features ไปใช้ใน Django Applications ของพวกเขาได้
ลองจินตนาการดูว่า คุณมี Forum ที่ผู้คนสามารถ Post ข้อความและสนทนาได้ แต่บางครั้ง ก็มีคน Post Content ไม่เหมาะสมที่คุณต้องการจะลบออก ซึ่ง Django-OML ก็เป็นเหมือนผู้ที่คอยดูแล Forum ของคุณ มันจะช่วยให้คุณสามารถจัดการ Content ที่ User สร้างขึ้นและทำให้ Forum ของคุณมีความเรียบร้อยและปลอดภัย
คุณสามารถบอก Django-OML ได้ว่า คุณต้องการลบ Content ประเภทใด ซึ่งอาจขึ้นอยู่กับ Keywords, User Reputation หรือปัจจัยอื่น ๆ ดังนั้น เมื่อมีคน Post บางสิ่ง เจ้า Django-OML ก็จะตรวจสอบสิ่งนั้นกับกฎที่คุณตั้งไว้ และหากพบสิ่งที่น่าสงสัย ระบบก็จะซ่อน Content ให้โดยอัตโนมัติ จากนั้นผู้ดูแลก็สามารถเข้ามาตรวจสอบ Content ที่ไม่เหมาะสมนั้น แล้วตัดสินใจว่า จะซ่อนมันไว้ก่อน, ลบออกไปเลย หรือสามารถเผยแพร่ได้
Django Permission เปรียบเสมือน ระบบรักษาความปลอดภัยสำหรับ Django Web Application ของคุณ มันจะควบคุมว่า ใครสามารถเข้าถึงสิ่งที่พวกเขาสามารถทำได้และดำเนินการอะไรได้บ้าง
ลองนึกภาพดูว่า Application ของคุณคือ บ้าน และ User แต่ละคนคือ แขก และ Django Permission ก็ทำหน้าที่เหมือน คนที่เฝ้าตรงประตูทางเข้า ซึ่งจะคอยทำหน้าที่ตรวจสอบบัตรประจำตัว และรับรองว่าแขกจะเข้าถึงเฉพาะห้องที่ได้รับอนุญาตไว้ เท่านั้น
นี่คือวิธีการทำงาน:
- คุณจะเป็นผู้ตัดสินใจว่า Users สามารถทำอะไรได้บ้าง เช่น “Add Post” หรือ “Edit Comment”
- คุณสามารถกำหนด Permissions ให้กับ User เป็นรายบุคคลไป หรือเป็นกลุ่มของ Users ได้
- เมื่อ User พยายามทำอะไรบางอย่าง เจ้า Django ก็จะตรวจสอบว่า พวกเขามีสิทธิ์ที่จะทำสิ่งนั้นหรือไม่ หากไม่มีสิทธิ์ User คนนั้นก็จะถูกปฏิเสธในการเข้าถึง
5. Django Rules
Django Rules เป็น App เล็ก ๆ แต่ทรงพลังมาก โดยมันจะให้ Permissions ในระดับ Object แก่ Django โดยที่ไม่ต้องใช้ Database ซึ่งจะว่าไปมันก็คือ Framework ทั่วไปสำหรับการสร้าง System ที่อิงกับกฎ นั่นเอง
ลองจินตนาการดูว่า คุณเป็นผู้นำของบริษัท และคุณก็ต้องการตั้งกฎขึ้นมาว่า ใครสามารถเข้าถึง Files ใดบ้าง หรือทำการตัดสินใจที่สำคัญบางอย่างได้ ซึ่ง Django Rules ก็เปรียบเสมือน การมี Rulebook (หนังสือกฎ) สำหรับ Django Application ของคุณ ซึ่งจะช่วยให้คุณสามารถกำหนดและบังคับใช้เงื่อนไขเฉพาะบางอย่างสำหรับการดำเนินการใด ๆ ได้
เช่นเดียวกับที่ คุณมีคู่มือเกี่ยวกับนโยบายของบริษัท เจ้า Django Rules จะช่วยให้คุณสร้าง Rulebook สำหรับ App ของคุณได้ และใน Rulebook นี้ คุณก็สามารถระบุเงื่อนไขและเกณฑ์สำหรับการดำเนินการที่ Users สามารถทำได้
ที่มา: https://medium.com/
รับตำแหน่งงานไอทีใหม่ๆ ด้วยบริการ IT Job Alert
อัพเดทบทความจากคนวงในสายไอทีทาง LINE ก่อนใคร
อย่าลืมแอดไลน์ @techstarth เป็นเพื่อนนะคะ
บทความล่าสุด