ข้ามไปที่เนื้อหาหลัก

บทความ

กำลังแสดงโพสต์ที่มีป้ายกำกับ Login & Security

แนะนำหลักการ Login ด้วย PHP + CodeIgniter & MySQL ตอนที่ 1

ส่วนประกอบหลักๆ ของระบบ Login 1. แบบฟอร์มสำหรับส่งข้อมูล 2. ไฟล์ประมวลผลด้วย PHP 3. ฐานข้อมูลสมาชิก สำหรับการล็อกอินนั้น เป็นวิธีการจำกัดสิทธิ์การเข้าใช้งาน ของผู้ที่เข้ามาในเว็บไซต์ เนื่องจากข้อมูลบางส่วนเราจะเปิดให้สมาชิกเท่านั้นที่ใช้งานได้ และในกลุ่มของสมาชิกนั้น เรายังมีการแบ่งระดับอีกครั้งด้วย เช่น ระดับทั่วไป, ระดับ VIP, ระดับ Premium และระดับ Admin เพื่อจำกัดบทบาทของสมาชิกแต่ละคน ต่อจากเรื่องของการล็อกอิน ก็จะเกี่ยวพันธ์ไปถึงการสร้างเมนู ให้เหมาะสมกับผู้ใช้แต่ละระดับ ซึ่งเราก็จะต้องสร้างฐานข้อมูลเมนู และสิทธิ์การใช้เมนูของแต่ละคนด้วย ซึ่งก็จะกล่าวถึงในบทความต่อๆไป

PHP การล็อกอิน กับปัญหา SQL Injection

       หลังจากได้เข้าร่วมอบรม Website Security Monitoring ที่ทางสำนักวิทยบริการและเทคโนโลยีสารสนเทศ ของมหาวิทยาลัยจัดขึ้น ก็ได้ความรู้เรื่องการสร้างระบบล็อกอินเพื่อป้องกันปัญหา SQL Injection มาฝากกับผู้เริ่มต้นทุกท่าน สำหรับการป้องกันนั้นจะมีอยู่หลายวิธี และวิธีหลักที่ใช้กันก็คือ กรองด้วยฟังก์ชั่น mysql_real_escape_string() , mysqli_real_escape_string() , (ดูเพิ่มเติมได้ที่ http://php.net/manual/en/function.mysql-real-escape-string.php ) ในกรณีของ id ที่เป็นตัวเลขล้วน ก็สามารถใช้ (int) วางไว้ข้างหน้าตัวแปรเพื่อป้องกันข้อมูลในหน้าอื่นๆได้เช่นกัน แต่ในตัวอย่างของบทความนี้ จะอธิบายทีละส่วนเพื่อให้เห็นถึงวิธีการต่างๆ ที่จะโยงไปยังเรื่องของการใช้ md5 ในบทความต่อๆไปด้วยครับ จากบทความที่เคยนำเสนอเกี่ยวกับการ สร้างแบบฟอร์มล็อกอิน จะใช้ SQL ในการตรวจสอบข้อมูลแบบเบื้องต้นดังนี้ $sql = "SELECT * FROM tb_user WHERE user_name = '$_POST[username]'            AND user_password = '". $_POST['password'] ."' ";...

การเก็บข้อมูลรหัสผ่านสำหรับล็อกอินเราควรจะเข้ารหัส md5 ก่อน และใส่สีตีไข่ลงไปด้วย

การเข้ารหัสข้อมูลการล็อกอินก่อนเก็บลงฐานข้อมูลนั้น จะว่าสำคัญมั้ยก็ไม่เชิง เพราะมันเป็นเพียงการเพิ่มความเชื่อมันให้ผู้ใช้งานว่าจะไม่มีใครสามารถเห็นรหัสผ่านของเขาได้ เช่น ผู้ใช้งานอาจจะใช้รหัสผ่านเดียวกันนี้ในหลายๆเว็บไซต์ การที่มีใครคนใดคนหนึ่งรู้รหัสผ่าน ก็จะทำให้สามารถเข้าถึงข้อมูลในเว็บไซต์อื่นๆได้ และแน่นอนว่ารวมถึงเว็บไซต์ที่ปล่อยให้มีคนเห็นรหัสผ่านนี้ด้วย สำหรับการเข้ารหัสด้วย md5() ก่อนบันทึกในฐานข้อมูลดังโค๊ดด่านล่างนี้ <?php $ pass = " Hello1234 "; $ my_md5 = md5 ($ pass ); echo " <br/>ข้อความที่พิมพ์ : " , $ pass ; echo " <br/>รหัสที่ได้คือ : <u> " , $ my_md5 , " </u> "; ?> ผลลัพธ์ ข้อความที่พิมพ์ : Hello1234 รหัสที่ได้คือ : cbd357125a99321c2a08e0206a97622f ข้อมูลที่จะนำไปบันทึกคือ $ my_md5 ที่เข้ารหัสแล้วนั่นเอง กรณีที่มีแอดมินหรือผู้ใช้คนใดคนหนึ่งที่เข้าไปดูฐานข้อมูลได้ หรือเข้าไปยังหน้าข้อมูลผู้ใช้ได้และสามารถมองเห็นรหัสผ่านได้ก็จะเจอแต่ข้อความ cbd357125a99321c2a08e0206a97622f ก็...

สร้างแบบฟอร์มล็อกอิน HTML + PHP

       ผมจะสร้างระบบตัวอย่างเพื่อแสดงให้เห็นการทำงานของสคริปต์ PHP ที่ใช้ในการล็อกอินอย่างง่ายๆ นะครับ โดยที่ผมจะสร้างโฟลเดอร์ใหม่ขึ้นในไดร์ฟที่เราได้กำหนดให้เป็น Directory Root สำหรับรันสคริปต์ PHP ซึ่งผมกำหนดเอาไว้ที่ D:\www ดังนั้นผมจะสร้างโฟลเดอร์ teacher_assistant ขึ้นมาใหม่จะได้พาธเป็น D:\www\teacher_assistant สำหรับการเข้าถึง จะใช้ URL ดังนี้ http://localhost/teacher_assistant หลังจากสร้างโฟลเดอร์เสร็จเรียบร้อยก็จะเริ่มกระบวนการเตรียมโครงสร้างโปรเจ็กต์ด้วยเครื่องมือช่วยเขียนโปรแกรมชื่อว่า eclipse ซึ่งดูวิธีการสร้างโปรเจ็กต์ได้จากบทความ เริ่มต้นสร้างโปรเจ็กต์ ด้วยโปรแกรม eclipse เครื่องมือเขียนโปรแกรม php ในบทความเป็นการสร้างโปรเจ็กต์ที่มีพาธเป็นโฟลเดอร์ login แต่ในที่นี้ต้องเป็นพาธให้ตรงกับโฟลเดอร์ใหม่ที่เราได้สร้างขึ้นด้วยนะครับ

สร้างระบบล็อกอิน เพื่อเพิ่มระดับความปลอดภัยของข้อมูล

       ไม่ว่าจะเริ่มต้นสร้างโปรแกรมใดๆ มาใช้งานเอง หรือจะเผยแพร่ให้คนอื่นได้ใช้กันนั้น คนที่ใช้โปรแกรมย่อมต้องการเรื่องความเป็นส่วนตัว และความปลอดภัยของข้อมูลที่ไม่อยากให้ผู้อื่นมาอ่าน หรือนำไปใช้โดยไม่ได้รับอนุญาต ดังนั้นบทความนี้จะเป็นการแนะนำการสร้างระบบล็อกอินแบบง่ายๆ ที่ใช้งานได้จริงเพื่อเป็นการป้องกันข้อมูลขั้นต้นสำหรับโปรแกรมอื่นๆ ที่เราจะพัฒนาขึ้นมาใช้กัน รูปที่ 1 แผนผังแสดงการตรวจสอบสิทธิ์เข้าใช้งานโปรแกรม