🖥️ การจะสร้างเว็บออกมาสักหนึ่งเว็บในเมื่อก่อนเราอาจจะต้องใช้เวลานานมากกกก แต่ในปัจจุบันมี Framework มากมายมาช่วยให้เราทำเว็บได้สะดวกรวดเร็วมากขึ้น !
.
👉 ซึ่งแต่ละ Framework ที่ถูกพัฒนาขึ้นมาก็จะมีข้อดีแตกต่างกันไป ขึ้นอยู่กับว่าเราจะเลือกใช้งานแบบไหน ให้มันเหมาะสมกับงานของเรานั่นเอง
.
และอีกหนึ่ง Framework สำหรับพัฒนาเว็บแอปพลิเคชันที่เขาฮิตกันมากในยุคนี้ 🔥 และแอดจะนำมาพูดถึงในวันนี้อย่าง Django เนี่ยมันดียังไง ? ทำไมเหล่า Dev ถึงต้องเลือกใช้ ? เจ้านี่มันทำอะไรได้บ้าง ? เก็บข้อสงสัยทั้งหมดนี้ แล้วมาหาคำตอบไปพร้อมกับแอดในโพสต์นี้ได้เลย !!
.
ก่อนอื่นเราทำความรู้จักกับ Django กันก่อน…
.
Django เป็น Framework ที่ช่วยพัฒนาเว็บแอปพลิเคชันได้อย่างง่ายดาย แถมยังสามารถช่วยจัดการ Database ที่ซับซ้อนได้อีกด้วย เขียนด้วยภาษา Python เป็น Open Source ใช้งานได้ฟรี !!
.
มาดูข้อดีของเจ้า Django กันบ้างดีกว่า...ว่าทำไมเหล่า Dev ถึงต้องเลือกใช้ตัวนี้ ?
.
🐍 ใช้ภาษา Python
.
Django ใช้ภาษา Python ในการพัฒนา อย่างที่รู้กันอยู่แล้วว่า Python เป็นอีกหนึ่งภาษาโปรแกรมมิ่งยอดฮิตมากที่สุดในยุคนี้ เรียนรู้ง่าย หากคุ้นเคยกับภาษานี้ดีอยู่แล้วการจะใช้ Django ในการพัฒนาเว็บก็จะทำได้รวดเร็วมากขึ้น แถมถ้าใช้แล้วเกิดมีปัญหาใด ๆ ก็สามารถหาข้อมูลมาแก้ไขได้ง่ายนั่นเอง
.
⚡ ใช้งานง่ายและรวดเร็ว
.
ใช้หลักการทำซ้ำ ทำให้เราพัฒนาโปรเจกต์ได้อย่างรวดเร็ว สามารถใช้โค้ดเดิมที่เราเขียนไว้ก่อนหน้ามาประยุกต์ใช้กับโปรเจกต์ปัจจุบันของเราได้เลย โดยไม่ต้องเริ่มทำใหม่ทั้งหมด เพียงแค่ปรับแต่งค่าบางอย่าง เช่น URL หรือ Template เพื่อให้เหมาะสมกับโปรเจกต์ใหม่ของเรานั่นเอง
.
⚙️ สถาปัตยกรรมแบบ MVT
.
ใช้สถาปัตยกรรมแบบ MVT (Model View Template) ซึ่งเป็นสถาปัตยกรรมการพัฒนาซอฟต์แวร์ ซึ่งช่วยให้แอปพลิเคชันทำงานได้อย่างมีประสิทธิภาพ แบ่งเป็น 3 ส่วน คือ
.
Model - ช่วยในการจัดการฐานข้อมูล CRUD (Create, Read, Update, และ Delete) สามารถทำงานร่วมกับฐานข้อมูล PostgreSQL, MySQL, SQLite, และ Oracle ได้อย่างง่ายดาย
.
View - จัดการในเรื่องของตรรกะและการดำเนินการต่าง ๆ ดึงข้อมูลจาก Model เพื่อส่งให้ Template แสดงหรือประมวลผลนั่นเอง
.
Template - จัดการในส่วน User Interface ใช้แสดงข้อมูลหรือเนื้อหาต่าง ๆ ซึ่งจะรับข้อมูลมาจาก View แล้วมาแสดงผลนั่นเอง
.
✅ ปลอดภัยสุด ๆ
.
ปฏิเสธไม่ได้เลยว่าความปลอดภัยของเว็บนั้นเป็นสิ่งสำคัญที่เหล่า Dev นั้นต้องคำนึงอยู่เสมอ ซึ่งเจ้า Django จะเป็น Framework ที่มีระบบรักษาความปลอดภัยที่ดีมาก ช่วยรักษาความปลอดภัยจากช่องโหว่ต่าง ๆ อย่างเช่น Clickjacking, SQL Injection, XSS, และ CSRF (Cross-Site Request Forgery) ให้เว็บของเราปลอดภัยมากขึ้น
.
📚 Libraries หลากหลาย
.
Django มีชุด Libraries มากมายที่จะช่วยให้เราพัฒนาเว็บได้ง่ายมากขึ้น เช่น Django REST ที่ช่วยในการสร้าง Interface ในการเขียนโปรแกรม, Django CMS ออกแบบมาเพื่อจัดการเนื้อหาบนหน้าเว็บ, และ Django-allauth ที่ช่วยสำหรับการตรวจสอบสิทธิ์ จัดการบัญชี เป็นต้น และยังมี Libraries อีกมากมาย หากใครสนใจสามารถเข้าไปดูกันได้ในลิงค์ด้านล่างเลยจ้า 👇
.
📑 Link : https://sunscrapers.com/blog/10-django-packages-you-should-know/
.
🖥️ รองรับ SEO
.
การจะทำเว็บให้ติดอันดับการค้นหาบน Search Engine สิ่งสำคัญที่ขาดไม่ได้คือการจัดการ SEO นั่นเอง ซึ่งเจ้า Django เป็นหนึ่งใน Framework ที่ช่วยจัดการ SEO ได้อย่างมีประสิทธิภาพมีเครื่องมือที่ช่วยจัดการ SEO ที่ช่วยให้เหล่า Dev ประหยัดเวลามากขึ้น
.
🗂️ รองรับ ORM
.
ใน Django จะมี ORM หรือ Object Relational Mapper เป็นตัวช่วยจัดการฐานข้อมูล ทำให้เราไม่ต้องเขียน SQL เพื่อติดต่อกับฐานข้อมูลตรง ๆ โดยเจ้า ORM จะมี Class ให้เราใช้ ทำให้เราติดต่อกับฐานข้อมูลได้รวดเร็วมากขึ้นนั่นเอง ไม่ว่าจะดึงข้อมูล สร้างตาราง หรืออัปเดตข้อมูล ก็ทำได้ง่าย ๆ
.
🔧 ยืดหยุ่น ปรับขนาดได้
.
Django มีความยืดหยุ่น และปรับขนาดตามโครงสร้างของเว็บได้ง่าย ไม่ว่าจะเป็นเว็บขนาดเล็กหรือขนาดใหญ่ที่มีความซับซ้อนมากขึ้น ไม่ว่าจะเป็นการจัดการกับ Traffic ของหรือปรับให้ทำงานได้ในอุปกรณ์ที่แตกต่างกัน มีปลั๊กอินที่ช่วยเพิ่มประสิทธิภาพให้กับเว็บ ให้โหลดใช้งานกันอย่างหลากหลาย และนี่เป็นสิ่งสำคัญที่เว็บไซต์เจ้าดัง อย่างเช่น Instagram, Pinterest, และ Disqus เลือกใช้งานเจ้า Django นั่นเอง
.
และนี่คือส่วนหนึ่งในข้อดีของเจ้า Django ! เพื่อน ๆ ล่ะมีข้อดีอะไรนอกเหนือจากทั้งหมดนี้อยากจะแชร์มั้ย คอมเมนต์มาพูดคุยกันได้เลยน้าาาา ❤️
.
borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน
#Django #python #framework #webdeveloper #BorntoDev
python injection 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 的最佳貼文
👨🏫 ในรูปได้ยกตัวอย่าง ช่องโหว่ของการเขียนโปรแกรม
ที่เปิดโอกาสให้ผู้ประสงค์ร้ายสามารถโจมตีด้วยวิธี
Command Injection
.
ช่องโหว่นี้เกิดจากในหลายๆ ภาษาโปรแกรมมิ่ง
ได้อนุญาติให้เรียกคำสั่งของระบบปฏิบัติการได้โดยตรง
ซึ่งสุ่มเสี่ยงให้ผู้โจมตีฉวยโอกาสนี้ฉีดคำสั่งเข้าไปในโค้ด
ด้วยการต่อท้ายด้วยข้อความ &&
จึงทำให้แทรกคำสั่งอันตรายเข้าไปได้ เช่น
:
del /F * บน window
หรือ rm -rf * บน linux
:
ในรูปได้ยกตัวอย่างโค้ดภาษา Java
ซึ่งทำงานบน Window
จะเห็นว่าสามารถใช้ && แล้วต่อท้ายด้วยคำสั่งอะไรก็ได้
เช่น && tasklist && dir เป็นต้น
.
แล้วถ้าโปรแกรมมันรันใน linux/Unix
ก็สามารถต่อคำสั่งเป็นลูกโซ่ด้วยข้อความ && หรือ ; ก็ได้
:
และไม่ใช่ Java ภาษาเดียว ที่มีช่องโหว่ประเภทนี้
มันเกิดได้หลายภาษา
ที่อนุญาติให้เรียกคำสั่งของระบบปฏิการโดยตรง
เช่น C#, Python, PHP และหลายๆ ภาษาที่ไม่ได้เอ่ยถึง
:
++++วิธีป้องกัน+++
🤔 ต้อง validate ข้อมูล input อย่างเข้มงวด เช่น
- กรอง input ที่เข้ามา กำหนดว่ามีอะไรได้บ้าง?
- input ที่เข้ามา ห้ามเป็นคำสั่งของระบบปฏิบัติการเด็ดขาด
- ห้ามมี && และ ; อยู่ใน input ที่เข้ามา
- เป็นต้น
.
😏 หรือจะเลี่ยงวิธีเขียนเรียกคำสั่งของระบบปฏิบัติการโดยตรง ไม่ต้องใช้ก็ย่อมได้
++++
เขียนโดย โปรแกรมเมอร์ไทย thai programmer
.
ดูตัวอย่างเพิ่มเติม
https://www.owasp.org/index.php/Command_Injection
👨 🏫 In the photo, for example, the loophole of programming.
Open doors for the evil wills to attack by the way.
Command Injection
.
This loophole is born in many programming languages.
Permission to call direct order of operating system
Who randomly risked this opportunity attacker to inject an order into code.
By ending with a text &&
It's so dangerous to insert like
:
del / F F on window
or rm-rf rf on linux
:
In the picture, for example, Java language code.
Which works on Window
Will see that I can use && and then end up with any order.
Like && tasklist && dir etc.
.
And if the program runs in linux / Unix
Can continue with chain order with text && or; either.
:
And not Java the only language has this type of loophole
It can be born in many languages.
Allowing to call direct command of the operational system.
Like C #, Python, PHP and many languages that are not mentioned.
:
++++ How to prevent +++
🤔 Must strictly validate input information like
- Input filter that comes to determine what's available?
- Input that comes to prohibit is an order of an operating system.
- Don't have && and; stay input that comes.
- etc.
.
😏 or avoid the way to write, call direct command of an operating system. No need to use it.
++++
Written by Thai programmer thai coder
.
See more previews
https://www.owasp.org/index.php/Command_InjectionTranslated
python injection 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 的最佳解答
👨🏫 ในรูปได้ยกตัวอย่าง ช่องโหว่ของการเขียนโปรแกรม
ที่เปิดโอกาสให้ผู้ประสงค์ร้ายสามารถโจมตีด้วยวิธี
Command Injection
.
ช่องโหว่นี้เกิดจากในหลายๆ ภาษาโปรแกรมมิ่ง
ได้อนุญาติให้เรียกคำสั่งของระบบปฏิบัติการได้โดยตรง
ซึ่งสุ่มเสี่ยงให้ผู้โจมตีฉวยโอกาสนี้ฉีดคำสั่งเข้าไปในโค้ด
ด้วยการต่อท้ายด้วยข้อความ &&
จึงทำให้แทรกคำสั่งอันตรายเข้าไปได้ เช่น
:
del /F * บน window
หรือ rm -rf * บน linux
:
ในรูปได้ยกตัวอย่างโค้ดภาษา Java
ซึ่งทำงานบน Window
จะเห็นว่าสามารถใช้ && แล้วต่อท้ายด้วยคำสั่งอะไรก็ได้
เช่น && tasklist && dir เป็นต้น
.
แล้วถ้าโปรแกรมมันรันใน linux/Unix
ก็สามารถต่อคำสั่งเป็นลูกโซ่ด้วยข้อความ && หรือ ; ก็ได้
:
และไม่ใช่ Java ภาษาเดียว ที่มีช่องโหว่ประเภทนี้
มันเกิดได้หลายภาษา
ที่อนุญาติให้เรียกคำสั่งของระบบปฏิการโดยตรง
เช่น C#, Python, PHP และหลายๆ ภาษาที่ไม่ได้เอ่ยถึง
:
++++วิธีป้องกัน+++
🤔 ต้อง validate ข้อมูล input อย่างเข้มงวด เช่น
- กรอง input ที่เข้ามา กำหนดว่ามีอะไรได้บ้าง?
- input ที่เข้ามา ห้ามเป็นคำสั่งของระบบปฏิบัติการเด็ดขาด
- ห้ามมี && และ ; อยู่ใน input ที่เข้ามา
- เป็นต้น
.
😏 หรือจะเลี่ยงวิธีเขียนเรียกคำสั่งของระบบปฏิบัติการโดยตรง ไม่ต้องใช้ก็ย่อมได้
++++
เขียนโดย โปรแกรมเมอร์ไทย thai programmer
.
ดูตัวอย่างเพิ่มเติม
https://www.owasp.org/index.php/Command_Injection
👨 🏫 In the photo, for example, the loophole of programming.
Open doors for the evil wills to attack by the way.
Command Injection
.
This loophole is born in many programming languages.
Permission to call direct order of operating system
Who randomly risked this opportunity attacker to inject an order into code.
By ending with a text &&
It's so dangerous to insert like
:
del / F F on window
or rm-rf rf on linux
:
In the picture, for example, Java language code.
Which works on Window
Will see that I can use && and then end up with any order.
Like && tasklist && dir etc.
.
And if the program runs in linux / Unix
Can continue with chain order with text && or; either.
:
And not Java the only language has this type of loophole
It can be born in many languages.
Allowing to call direct command of the operational system.
Like C #, Python, PHP and many languages that are not mentioned.
:
++++ How to prevent +++
🤔 Must strictly validate input information like
- Input filter that comes to determine what's available?
- Input that comes to prohibit is an order of an operating system.
- Don't have && and; stay input that comes.
- etc.
.
😏 or avoid the way to write, call direct command of an operating system. No need to use it.
++++
Written by Thai programmer thai coder
.
See more previews
https://www.owasp.org/index.php/Command_InjectionTranslated