본문으로 건너뛰기

PHP Database Mastery: PDO & Security

ปลดล็อกพลังการจัดการฐานข้อมูลด้วย PHP และ PDO! เรียนรู้ตั้งแต่การเชื่อมต่อฐานข้อมูลอย่างปลอดภัยด้วย Prepared Statements, การทำ CRUD operations อย่างเป็นระบบ, การตรวจสอบและทำความสะอาดข้อมูล, ไปจนถึงการจัดการ Transaction เพื่อให้มั่นใจในความถูกต้องของข้อมูล

เริ่มต้น 짧은 문서 50개

เนื้อหาภาษาไทย / 태국어 콘텐츠

강의 목차 (Roadmap)

위에서 아래로 순서대로 따라 하세요
2

การเชื่อมต่อฐานข้อมูลด้วย PDO: ตัวอย่างการเชื่อมต่อ MySQL

บทความนี้แสดงวิธีการเชื่อมต่อกับฐานข้อมูล MySQL โดยใช้ PDO ใน PHP โดยเริ่มต้นจากการสร้าง PDO object ด้วย DSN, username, และ password พร้อมทั้งอธิบายการจัดการข้อ...

3

PDO Attribute: การตั้งค่า Attribute ของ PDO

บทความนี้กล่าวถึงการตั้งค่า Attribute ของ PDO เพื่อปรับแต่งการทำงาน เช่น การจัดการข้อผิดพลาด (PDO::ATTR_ERRMODE), รูปแบบการดึงข้อมูล (PDO::ATTR_DEFAULT_FETCH_MO...

6

การดึงข้อมูลด้วย PDO: fetch(), fetchAll()

บทความนี้อธิบายวิธีการดึงข้อมูลจากฐานข้อมูลด้วย PDO โดยใช้เมธอด `fetch()` สำหรับดึงข้อมูลแถวเดียว และ `fetchAll()` สำหรับดึงข้อมูลทั้งหมด พร้อมทั้งอธิบายถึง fet...

7

CRUD Operations: การสร้างข้อมูล (CREATE)

บทนี้อธิบายถึงการสร้างข้อมูลใหม่ (CREATE) ในฐานข้อมูลโดยใช้ PDO และ SQL INSERT statement โดยเน้นการใช้ prepared statements เพื่อป้องกัน SQL Injection และการผูกค...

8

CRUD Operations: การอ่านข้อมูล (READ)

บทความนี้อธิบายวิธีการอ่านข้อมูลจากฐานข้อมูลโดยใช้ PDO และ SQL SELECT statement ซึ่งเป็นส่วนหนึ่งของ CRUD operations โดยเน้นการใช้ prepared statement เพื่อป้องก...

9

CRUD Operations: การแก้ไขข้อมูล (UPDATE)

บทความนี้อธิบายวิธีการแก้ไขข้อมูลในฐานข้อมูลโดยใช้ PDO และคำสั่ง SQL `UPDATE` ซึ่งเป็นส่วนหนึ่งของ CRUD operations โดยเน้นการใช้ Prepared Statements เพื่อป้องกั...

10

CRUD Operations: การลบข้อมูล (DELETE)

บทความนี้อธิบายวิธีการลบข้อมูลออกจากฐานข้อมูลโดยใช้ PDO และคำสั่ง SQL `DELETE` ซึ่งเป็นส่วนหนึ่งของ CRUD operations โดยเน้นย้ำความสำคัญของการใช้ Prepared Statem...

12

Data Validation: การตรวจสอบข้อมูลเบื้องต้น

บทความนี้กล่าวถึงความสำคัญของการตรวจสอบข้อมูล (Data Validation) เพื่อให้มั่นใจในความถูกต้องและความปลอดภัยของข้อมูลในระบบ โดยเน้นการตรวจสอบประเภทข้อมูลและความยาว...

13

Data Sanitization: การทำความสะอาดข้อมูลด้วย filter_var()

บทความนี้กล่าวถึงความสำคัญของการทำความสะอาดข้อมูล (Data Sanitization) เพื่อกำจัดข้อมูลที่ไม่พึงประสงค์หรือเป็นอันตราย โดยเน้นการใช้งานฟังก์ชัน `filter_var()` ใน...

14

การป้องกัน SQL Injection: การใช้งาน Prepared Statements อย่างถูกต้อง

บทความนี้กล่าวถึง SQL Injection ซึ่งเป็นช่องโหว่ที่ผู้ไม่หวังดีสามารถแทรกคำสั่ง SQL อันตรายเข้าไปใน query ได้ โดยเน้นย้ำถึงการป้องกันด้วย Prepared Statements ซึ...

15

CSRF Protection: หลักการทำงานและการป้องกัน

บทความนี้อธิบายถึงภัยคุกคาม Cross-Site Request Forgery (CSRF) ซึ่งเป็นการโจมตีที่ผู้ไม่หวังดีหลอกให้เหยื่อที่ล็อกอินอยู่ทำการ request โดยไม่รู้ตัว โดยอาศัยการที...

16

การสร้าง Form พร้อม CSRF Token

บทความนี้อธิบายวิธีการสร้างฟอร์มที่ป้องกันการโจมตี CSRF โดยการสร้างและแทรก CSRF token ที่ไม่ซ้ำกันลงในฟอร์มในรูปแบบ hidden field และเก็บ token นี้ไว้ใน session...

17

การตรวจสอบ CSRF Token เมื่อรับ Form

บทความนี้อธิบายวิธีการตรวจสอบ CSRF Token ที่ส่งมาจาก Form เพื่อยืนยันความถูกต้องของคำขอ โดยเปรียบเทียบ Token ที่ได้รับกับ Token ที่เก็บไว้ใน Session และลบ Token...

19

Password Verification: การใช้งาน password_verify()

บทความนี้อธิบายวิธีการใช้ฟังก์ชัน `password_verify()` ใน PHP เพื่อเปรียบเทียบรหัสผ่านที่ผู้ใช้ป้อนกับ hash ที่เก็บไว้ในฐานข้อมูล เพื่อยืนยันตัวตนอย่างปลอดภัย แล...

20

Session Management: การเริ่มต้น Session

บทความนี้อธิบายเกี่ยวกับการจัดการ Session ใน PHP โดยเริ่มต้นด้วยการใช้ `session_start()` เพื่อเริ่มต้นหรือดึง Session ที่มีอยู่ ซึ่งต้องทำก่อนส่ง output ใดๆ ไปย...

22

Session Management: การทำลาย Session

บทความนี้อธิบายวิธีการทำลาย Session ใน PHP เพื่อรักษาความปลอดภัยของข้อมูลผู้ใช้ โดยเน้นการใช้ฟังก์ชัน `session_destroy()` เพื่อลบ Session ทั้งหมด และ `unset()`...

23

การจัดการ Error ด้วย try-catch block

บทความนี้อธิบายถึงความสำคัญของการจัดการ Error เมื่อทำงานกับฐานข้อมูลโดยใช้ PDO ใน PHP โดยเน้นการใช้ `try-catch` block เพื่อดักจับ `PDOException` ที่อาจเกิดขึ้นจ...

24

การ Log Error ด้วย PDO

บทนี้เน้นย้ำความสำคัญของการ Log Error ที่เกิดจากการใช้งาน PDO ใน PHP เพื่อช่วยในการวิเคราะห์และแก้ไขปัญหาของแอปพลิเคชันได้อย่างมีประสิทธิภาพ โดยอธิบายถึงวิธีการ...

25

การใช้ PDO กับ Pagination

บทความนี้อธิบายวิธีการใช้งาน PDO ใน PHP เพื่อสร้างระบบ Pagination สำหรับเว็บไซต์ที่มีข้อมูลจำนวนมาก โดยครอบคลุมตั้งแต่การคำนวณจำนวนหน้าทั้งหมด, การดึงข้อมูลเฉพา...

26

การใช้ PDO กับ JOIN Statement

บทความนี้อธิบายวิธีการใช้งาน `JOIN` statement ใน SQL ร่วมกับ PDO เพื่อดึงข้อมูลจากหลายตารางที่สัมพันธ์กัน โดยเน้นที่ `INNER JOIN`, `LEFT JOIN`, และ `RIGHT JOIN`...

27

การใช้ PDO กับ Subquery

บทความนี้อธิบายถึงการใช้งาน Subquery ใน SQL ร่วมกับ PDO เพื่อดึงข้อมูลที่ซับซ้อน โดย Subquery คือ Query ที่ซ้อนอยู่ภายใน Query หลัก และสามารถใช้ใน WHERE หรือ SE...

28

การใช้ PDO กับ Stored Procedure

บทความนี้อธิบายวิธีการใช้งาน Stored Procedure ร่วมกับ PDO ใน PHP โดย Stored Procedure คือชุดคำสั่ง SQL ที่ถูกจัดเก็บไว้ในฐานข้อมูล ช่วยเพิ่มประสิทธิภาพ, ความปลอ...

29

การใช้ PDO กับ Auto-Increment

บทความนี้อธิบายวิธีการจัดการกับคอลัมน์ Auto-Increment ในฐานข้อมูลโดยใช้ PDO ใน PHP โดยเน้นที่การดึงค่า ID ล่าสุดหลังจากการ INSERT ข้อมูลด้วยเมธอด `lastInsertId(...

31

การปรับปรุงประสิทธิภาพของ PDO Query

บทความนี้กล่าวถึงเทคนิคการปรับปรุงประสิทธิภาพของ PDO Query เพื่อให้แอปพลิเคชันทำงานได้รวดเร็วขึ้น โดยเน้น 3 หัวข้อหลัก: การใช้ Index ในฐานข้อมูล, การหลีกเลี่ยงก...

32

การใช้ PDO กับ Multiple Databases

บทความนี้อธิบายวิธีการใช้ PDO เพื่อเชื่อมต่อและใช้งานฐานข้อมูลหลายแห่งพร้อมกัน ทั้งฐานข้อมูลประเภทเดียวกันและต่างประเภทกัน โดยเน้นที่การสร้าง PDO object แยกสำหร...

33

การใช้ PDO กับ Database Abstraction Layer

บทความนี้แนะนำ Database Abstraction Layer (DAL) ซึ่งเป็นชั้น abstraction ที่ช่วยซ่อนความซับซ้อนของการจัดการฐานข้อมูลด้วย PDO, ทำให้โค้ดง่ายต่อการบำรุงรักษา, เปล...

34

การใช้ PDO กับ ORM (Object-Relational Mapping)

บทความนี้แนะนำ Object-Relational Mapping (ORM) ซึ่งเป็น abstraction ที่สูงกว่า Database Abstraction Layer (DAL) ที่เรียนรู้ไปก่อนหน้านี้ โดย ORM ช่วยให้ทำงานกับ...

35

การป้องกัน XSS (Cross-Site Scripting)

บทความนี้กล่าวถึง Cross-Site Scripting (XSS) ซึ่งเป็นช่องโหว่ที่ผู้ไม่ประสงค์ดีสามารถแทรกสคริปต์อันตรายเข้าไปในเว็บไซต์ได้ โดยเน้นที่สองแนวทางหลักในการป้องกันคื...

36

การป้องกัน Clickjacking

บทความนี้กล่าวถึง Clickjacking ซึ่งเป็นการโจมตีที่หลอกล่อให้ผู้ใช้คลิกสิ่งที่ไม่ตั้งใจ โดยซ่อนเว็บไซต์เป้าหมายไว้ใน iframe ที่มองไม่เห็น บทความแนะนำการป้องกัน C...

37

การป้องกัน Brute-Force Attack

บทความนี้กล่าวถึง Brute-Force attack ซึ่งเป็นการโจมตีที่พยายามเดารหัสผ่านหรือข้อมูลลับโดยการลองผิดลองถูก และความเสียหายที่อาจเกิดขึ้น เช่น การเข้าถึงบัญชีโดยไม่...

38

การใช้ CAPTCHA

บทความนี้กล่าวถึงการใช้ CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) เพื่อป้องกัน Bot จากการใช้งานเว็บไซต์อย่างไม่เหมาะส...

39

การใช้ Rate Limiting

บทความนี้กล่าวถึง Rate Limiting ซึ่งเป็นเทคนิคการจำกัดจำนวนการเข้าถึงเว็บไซต์จาก IP address หรือผู้ใช้งานรายเดียวภายในช่วงเวลาที่กำหนด เพื่อป้องกันการโจมตีต่างๆ...

40

การใช้ Two-Factor Authentication (2FA)

บทความนี้กล่าวถึง Two-Factor Authentication (2FA) ซึ่งเป็นระบบรักษาความปลอดภัยที่ต้องการการยืนยันตัวตนด้วยสองปัจจัยเพื่อเข้าถึงระบบ โดยเน้นที่การใช้งาน TOTP (Ti...

41

การ Audit Log

บทความนี้กล่าวถึง Audit Log ซึ่งเป็นเครื่องมือสำคัญสำหรับการบันทึกการเปลี่ยนแปลงข้อมูลในฐานข้อมูล เพื่อใช้ตรวจสอบย้อนหลัง ปฏิบัติตามกฎหมาย และปรับปรุงระบบ โดยอธ...

42

การ Backup and Restore Database

บทความนี้กล่าวถึงความสำคัญของการสำรองและกู้คืนข้อมูลฐานข้อมูลเพื่อป้องกันข้อมูลสูญหายจากเหตุการณ์ต่างๆ พร้อมทั้งแนะนำวิธีการสร้างสคริปต์ PHP สำหรับสำรองและกู้คื...

43

การใช้ SSL/TLS

บทความนี้กล่าวถึงความสำคัญของการใช้ SSL/TLS เพื่อเข้ารหัสการสื่อสารระหว่างผู้ใช้กับเซิร์ฟเวอร์และระหว่างเว็บเซิร์ฟเวอร์กับฐานข้อมูล เพื่อป้องกันการดักจับข้อมูล...

44

การ Monitor Database Security

หลังจากที่เราได้ป้องกันฐานข้อมูลด้วยวิธีการต่างๆ แล้ว สิ่งสำคัญถัดไปคือการเฝ้าระวังความปลอดภัยของฐานข้อมูลอย่างสม่ำเสมอ (Monitor) เพื่อตรวจจับและตอบสนองต่อภัยคุ...

45

การใช้ Content Security Policy (CSP)

บทความนี้กล่าวถึง Content Security Policy (CSP) ซึ่งเป็นกลไกสำคัญในการป้องกันเว็บไซต์จากการโจมตี Cross-Site Scripting (XSS) โดย CSP ช่วยควบคุมแหล่งที่มาของทรัพย...

46

การใช้ Subresource Integrity (SRI)

ในบทที่แล้วเราได้เรียนรู้เกี่ยวกับ CSP เพื่อป้องกัน XSS ในบทนี้เราได้ศึกษา Subresource Integrity (SRI) ซึ่งเป็นกลไกที่ช่วยให้เบราว์เซอร์ตรวจสอบความสมบูรณ์ของไฟล...

47

การจัดการ Session Hijacking

บทความนี้กล่าวถึง Session Hijacking ซึ่งเป็นการขโมย Session ID เพื่อแอบอ้างเป็นผู้ใช้งาน และนำเสนอแนวทางการป้องกันหลัก 3 วิธี ได้แก่ การ regenerate Session ID เ...

48

การใช้ Prepared Statements กับ LIKE Operator

บทความนี้กล่าวถึงความสำคัญของการใช้ Prepared Statements ร่วมกับ `LIKE` operator อย่างระมัดระวังเพื่อป้องกัน SQL Injection เมื่อมีการค้นหาข้อมูลโดยใช้ข้อมูลที่ผู...

49

การใช้ PDO กับ UNION Statement

บทความนี้อธิบายวิธีการใช้งาน `UNION` statement ร่วมกับ PDO ใน PHP เพื่อรวมผลลัพธ์จากหลาย queries อย่างปลอดภัย โดยเน้นย้ำถึงความสำคัญของการใช้ prepared statement...

50

การใช้ PDO กับ LIMIT และ OFFSET สำหรับ Pagination ขั้นสูง

บทความนี้อธิบายวิธีการทำ Pagination ขั้นสูงโดยใช้ `LIMIT` และ `OFFSET` ร่วมกับ PDO ใน PHP เพื่อจัดการและแสดงผลข้อมูลจำนวนมากอย่างมีประสิทธิภาพ โดยเน้นการใช้งาน...