Category: การพัฒนา Web Application

การเข้ารหัส Password หรือข้อมูลส่วนบุคคลในฐานข้อมูล ด้วย Hash Function กับ Salt Value

การ Hashการ Hash หรือ Hashing ชื่ออย่างเป็นทางการคือ Cryptographic Hash คือการสร้างข้อมูลที่เป็นตัวแทนของข้อมูลที่ต้องการ ซึ่งอาจจะเป็นรหัสผ่าน หรือข้อมูลส่วนบุคคลอื่นๆ และนำไปจัดเก็บในฐานข้อมูลหรือใน Text file หรือในที่อื่นๆ ซึ่งข้อดีของการทำ Hash คือจะไม่สามารถถอดรหัส หรือกระทำการใดๆ เพื่อที่จะ Reverse ให้ออกมาเป็นข้อความต้นฉบับ ซึ่งในปัจจุบันมีวิธีการ Hash มากมาย เช่น MD5, SHA1, SHA256, SHA512, RipeMD, WHIRLPOOL, SHA3 เป็นต้น การเขียนโปรแกรมในแง่การเขียนโปรแกรมของแต่ละภาษา จะมี Library หรือเครื่องมือที่เอาไว้ใช้ทำ Hash อยู่แล้ว…

เล่าเบื้องหลังการสร้าง www.psudev.info

“กรุงโรมไม่สร้างแค่วันเดียว” ฉันใดฉันนั้นเพื่อให้เครือข่ายนักพัฒนาแอพพลิเคชั่น (เหล่าโปรแกรมเมอร์) ของมหาวิทยาลัยสงขลานครินทร์ เกิดการร่วมกลุ่มกันอย่างเป็นรูปธรรมกันมากขึ้น จึงมีแนวคิดจะสร้างเว็บไซต์ลักษณะที่เป็นฐานข้อมูลรวบรวมรายชื่อสเหมือนสมุดหน้าเหลือง (เด็กสมัยใหม่อาจจะงง!) www.psudev.info เพื่อเป็นข้อมูลไว้ติดต่อกันสามารถค้นหาได้สะดวก คอนเซปคือต้องพัฒนาได้ง่ายและรวดเร็ว เป็น https ไม่ต้องเสียค่า cert สามารถออนไลน์ได้ทั่วโลก ไม่มีวันล่ม ไม่ต้องดูแลอินฟา และไม่รอช้าานั่นเริ่มกันเลยครับ…

เรียนรู้เทคโนโลยี OAuth2

OAuth2 คืออะไร ทำไมต้องใช้              OAuth2 คือมาตรฐานหนึ่งของระบบยืนยันตัวตน และจัดการสิทธิ์การเข้าใช้งานระบบต่าง ๆ เป็นมาตรฐาน rfc6747[1] ที่ใช้สำหรับ Client เชื่อมต่อกับ Server ที่ใช้ในการ Authen & Authorize เพื่อให้ได้รับสิ่งที่เรียกว่า Access Token เพื่อใช้แทน Username และ Password (สามารถใช้อย่างอื่นเพื่อขอ Token ก็ได้) เพื่อนำไปใช้กับบริการอื่น ๆ ทำให้มีความปลอดภัยมากขึ้น รวมถึงบอกว่าทำมีสิทธิ์ทำอะไรได้บ้างกับบริการนั้น ๆ (จริง ๆ…

Refresh ข้อมูลในกรณีที่ฐานข้อมูลมีการอัพเดทใน LINQ และ Entity Framework (Refresh Query in LINQ)

จากปัญหาที่เคยเจอในกรณีที่ฐานข้อมูลมีการอัพเดทไปแล้ว พอ Select ข้อมูลออกมาข้อมูลไม่ refresh ในกรณีนี้จะยกตัวอย่างการใช้งานฟังก์ชัน reload ของ System.Data.Entity.Infrastructure public class DbEntityEntry where TEntity : class // Summary:// Reloads the entity from the database overwriting any property values with values // from the database. The entity will be in the…

การสร้างเงื่อนไขแบบหลายตัวแปรในการค้นหาข้อมูลผ่าน LINQ (Multiple Search In LINQ)

การสร้างเงื่อนไขแบบหลายตัวแปรในการค้นหาข้อมูลผ่าน Linq เพื่อให้เห็นภาพชัดเจน จะยกตัวอย่างโดย กำหนดเงื่อนไข 3 ตัวแปร ดังนี้ ตัวแปร “ชื่อ/นามสกุล/เลขประจำตัวประชาชน” โดยใช้ control TextBox ที่ชื่อ ID=”txtSearch” ตัวแปร “โครงการรับ” โดยใช้ control DropDownList ที่ชื่อ ID=”ddProject” ตัวแปร “สถานะการตรวจเอกสาร” โดยใช้ control DropDownList ที่ชื่อ ID=”ddStatus” จากนั้นเราสร้าง Entity ยกตัวอย่างเป็น UploadEntities ซึ่งในที่นี้ สร้าง DbSet ที่เชื่อมต่อฝั่งฐานข้อมูลยกตัวอย่างเป็น V_REGISTRATION_UPLOAD ผ่าน Entity…

การสร้าง RESTful API สำหรับใช้งานจริง ง่าย ๆ ด้วย Flask และ Waitress

จาก From LAB to Production – จาก Machine Learning Model สู่ Flask RESTful ซึ่งได้นำ Machine Learning แบบ Statistical Approach อย่าง Logistic Regression ที่สร้างโมเดล และ Train กับข้อมูลเรียบร้อยแล้ว (บนเครื่อง Development) จากนั้น ได้นำโมเดลออกมาใช้งาน โดยใช้ วิธีการ Serialization ด้วย joblib ในภาษา Python ได้เป็นไฟล์ออกมา แล้วจึงนำไปใช้เพื่อใช้ในการทำนาย (predict)…

Stencil : Styling

Shadow DOM Shadow DOM เป็น API ที่อยู่ใน browser ที่ให้ความสามารถในทำ DOM encapsulation และ style encapsulation โดย Shadow DOM จะแยก component ออกจากภายนอก ทำให้ไม่ต้องกังวลกับ scope ของ css หรือผลกระทบกับ component ภายนอก หรือ component ภายนอกจะกระทบกับ component ภายใน ใน Stencil ค่า default การใช้งาน Shadow DOM ใน…

Stencil : JSX

Stencil component ใช้ JSX template syntax ในการกำหนดรูปแบบการแสดงผลที่จะถูก render ของ component  ซึ่งแต่ละ component จะมี render function ที่จะทำหน้าที่ return โครงสร้างของ component ที่จะเปลี่ยนเป็น DOM ตอน runtime เพื่อแสดงผลบนหน้าจอ class MyComponent { render() { return ( <div> <h1>Hello World</h1> <p>This is JSX!</p> </div> ); }…