[CodeMania101] Coding Security

จริงๆ มางาน Code Mania 101 เพราะ Session นี้เลยครับ เนื่องจาก Project ที่ยื่นเข้าประกวดล่าสุดติดปัญหาทาง Technical เยอะพอสมควรเลย และเรื่อง Security เป็นหนึ่งในนั้นครับ สำหรับ Session เป็นกูรูด้าน Security พี่นฤดม รุ่งศิริวงศ์ ครับ Software Security Fundamental Security Software Security (3R) Security Concept Coding Security Practices 1. Input Validation อะไรที่เป็น Input บ้าง ? – ทุก Byte ที่ส่งไป Server ไม่ใช้จากหน้า UI อย่างเดียว รับบ้อมูลที่ตกลงกันได้ที่ลักษณะ formal(เป็นทางการ มีการตกลงกันไว้) และจัดการกับข้อมูลที่ผิดได้ มี 2 แบบ ควรป้องกันในด้านแรก ทำกันให้ได้ในด้านแรกๆเลย แล้วควรทำที่ไหน ถ้ามี Client และ Server Implementation Guideline ทำแล้วได้อะไร -Comply with 2. Output Handling อะไรที่ต้อง Clean บ้าง ? – ทุกอย่างที่ออกจากระบบ โดย Output ที่ออกจากระบบของเรามีคุณภาพ ไม่มีปัญหากับระบบอื่นๆ ที่นำข้อมูลไปใช้งานต่อ เวลาทำเรื่องนี้ควรทำที่ฝั่ง Server เพราะมันน่าเชื่อถือมากกว่าง มี 2 กลยุทธ์ที่ใช้ ทำแล้วได้อะไร -Comply with 3. Parameterized Queries ทำแล้วได้อะไร -Comply with 4. Identity…

[CodeMania101] สรุปงาน Code Mania 101

สำหรับงานนี้น่าจะเป็นงาน Code Mania ครั้งแรก ที่ผมได้นั่งรถเมล์จากต้นสาย น่าจะเกือบสุดสายเลย รถเมล์สาย 149 โดยในงาน Code Mania จัดมาเป็นครั้งที่ 5 แล้วครบ ซึ่งในครั้งนี้จัดที่ ม กรุงเทพ กล้วยน้ำไทครับ (แอบไกล) น่าจะเป็นการมาที่นี่อีกครั้งในรอบ 4 ปี ของผมนะครับ ครั้งล่าสุดมาเป็น TA สอนตัว Pentaho ครับ เข้าเรืองดีกว่าครับ Keynote: Chachiyo’s formula เดอะซีรี่ย์- “Reboot 8088” อาจารย์ ดร.ทีปานิส ชาชิโย สำหรับเรื่องสูตร Chachiyo’s formula แนะนำไปอ่านของเพจ #สรุป ครับ ซึ่งสูตรนี้ที่ผมเข้าใจ มันเป็นอธิบายพฤติกรรมของอิเล็กตรอน โดยตัวอย่างการเอาไปใช้ สามารถเอาไปสร้างสูตรเคมีต่างๆได้ และทุกสูตรก็มีที่มาครับ แล้ว อ เกี่ยวกับ Coding ยังไง ? วันวานยังหวานอยู่ – (อ มีร้องเพลงโชว์ด้วย) ในอดีต สมัยโน้นมีคนเขียนโปรแกรม เป็นในลักษณะสมครเล่น งานอดิเรก อยู่ปัจจุบัน  แต่ทำไมโปรแกรมเมอร์ยังขาด ? ปัญหาอยู่ที่มุมมองซึ่ง อ ได้ให้ไว้ 2 มุม “ค่านิยม ผู้ผลิต VS ผู้บริโภค ในโจทย์เดียวกัน” ถ้าเราจะปรับเปลี่ยนอะไร เราต้องปลูกผังค่านิยมอะไรบ้างอย่างลงไป ซึ่ง อ ได้ยกทฤษฏีลิงตัวที่ร้อย (100th Monkey Effect) เมื่อเราทำอะไรลงไป ทำให้คนอื่นคล้อยตาม ทำตาม เมื่อถึงจุดหนึ่งทุกคนมีการปรับพฤติกรรม ทำตามทั้งหมดครับ จนสุดท้ายทุกคนมีแนวคิดของตัวเอง สร้างสมการของตัวเองขึ้นมาได้ครับ Flash Talk 1. “Let’s secure our app with Docker Secrets” โดยคุณ ภวินท์…

[MITx: 6.00.1x] Introduction to Computer Science and Programming Using Python (Week 2) – Problem Solving

ฺBlog ตอนนี้การเรียนใน Week ที่ 2 แล้วครับ ซึ่งเปิดมาครั้งแรก โอ้ววววววว การบ้านน้อยดี พอเปิดไปบทถัดไปเท่านั้นแหละ “ชีวิตแค่โดนทำร้าย 5555” สำหรับ Week นี้ ในบทแรกเป็นการทบทวนของเก่ามากกว่าครับ ตั้งแต่ if-else ไปจนถึงแนวคิดของ  Guess ^ Check ซึ่งแนวคิดมันมีปัญหาที่ว่ามันช้ามากก หาทุกกรณีที่เป็นไปได้ครับ ตอนนี้มันมีวิธีที่เร็วกว่าไหม แต่ต้องรู้จักกับ Keyword พวกนี้ก่อนครับ Approximate Solutions & Bisection Search ถ้าในตัวอย่างของผู้สอน เค้ายกเรื่องการหาค่า root ครับ ตาม Code เลย จากนั้นมาลงลึกตัว Float และ Faction ครับ โดยมองว่าตัวเครื่องคอม มันรู้จักแทนค่าตัวเลขได้อย่างไร ตอนนี้ใช้แนวคิดของเลขฐาน 2 ครับ แต่ถ้าใช้ตัวแปรประเภท Float ให้ระวังเรื่อง floating-point rounding error Decomposition & Abstraction หลังจากจบบทแรกไป จะบอกว่ารู้พวกพื้นฐาน ถ้าใน Week ที่แล้วมัน คือ หัวใจ (Core Elements) บทถัดมาเรียกว่าอะไร เป็นการแทนปัญหาของรอบตัวเรา โดยการ โดยในบทนี้ การทำ Decomposition  & Abstraction เน้นตัว 📌function ครับ ใน Python ใช้ keyword def ครับ 📌มุมมองการจัดการปัญหา เราสามารถ Decomposition(แยก) งานชิ้นใหญ่ ออกมาเป็น Function ซึ่งเพิ่ม Abstraction แล้ว ตรงนี้เราพบว่า มันมี Code ส่วนนึงที่ทำซ้ำบ่อยๆ ปกติเราวิธีการ Iteration 📌file – อันนี้ผมว่า เค้าแบ่งหัวข้อได้แปลกดี…

[VSTO] Specified argument was out of the range of valid values

ปัญหา: ติดตั้งไฟล์ VSTO ชอง Office แล้วเจอ Error Message ว่า “Specified argument was out of the range of valid values. Parameter name: entryValue” ดังรูป ทางแก้ไข: ให้ไปที่ Path %USERPROFILE%\AppData\Local\Apps\2.0 จากนั้นลบข้อมูลออกให้หมด (อาจจะต้องใช้ Tools พวก Unlocker เพราะบางไฟล์ ยังถูกบาง Process ใช้งานอยู่ครับ) ทดสอบลง VSTO AddIns อีกครั้ง

[ครัวดีบุ๊กกลิ้ง] มาลองทำ Steak แบบบ้านๆ กัน

ช่วงนี้หยุดยาวของ ป โท ครับ พยายามอัพ Blog ให้ได้เยอะๆ 5555 วันนี้ผมก็มาทำ Steak บ้าง ดีกว่า เนื้อจาก Tops Super มีโปรโมชั่นลดราคา (จริงๆ ของที่แถมในกล่องที่ 2 ผมว่า มันน่าจะขายไม่ค่อยออกเลยนำมายังทำโปรร่วมกันนะครับ และก็ส่วนตัวมีความเชื่อว่าลดแล้ว มันยังไงก็มีกำไรครับ) กลับมาที่ Steak ดีกว่าครับ โดยในวันนี้ผมทำ Steak หมู กับสลัด (ซื้อจากตลาดนัดแถวบ้านนะครับ) ฉะนั้น Blog นี้มาสนใจที่ตัว Steak ครับ ของที่จำเป็น เนื้อหมูสำหรับทำ Steak – ผมเอาจากเนื้อในชุดโปรแหละครับ หั่นมาแล้ว พริกไทยดำแบบเม็ด โรสแมรี่แห้ง เนย กระทะ และตะหลิว ขั้นตอนการทำ พริกไทยดำแบบเม็ด – เอามาทุบหยาบๆ แล้วไปหมักครับ เนื้อหมู ผมกลัวไม่สุก เลยเอาส้อมจิ้มๆ และเอามีดกรีดเป็นแนวไว้ครับ จากนั้นเอาเนื้อหมูมาขลุกกับพริกไทยดำที่ทุบแล้ว หอมดีครับ ทิ้งไว้สัก 20 นาทีครับ เตรียมกระทะร้อน ใส่เนยเอาเนื้อที่มักลง ใส่เนย โรยด้วยโรสแมรี่ ครับ พลิกไป พลิกมา จากนั้นเอาฝาหม้อ มาปิดครับทิ้งไว้ 30 วินาที เปิดฝาหม้อ กลับข้างเนื้อ จากนั้นปิดฝาหม้อทิ้งไว้ 30 วินาทีครับ กลิ่นหอมมม จัดจาน เตรียมรับประทานครับ สวยงาม น่าทานครับ สุกทั้งนอก และในครับ สำหรับครั้งหน้า ผมพยายามลองเอาเนื้อแบบอื่นๆ มาลองทำนะครับ

[.NET] ตรวจสอบ ปัญหา Assembly Loading xxxxx ด้วย Tools Fuslogvw.exe

ฺช่วงนี้เป็นช่วยการเติมเต็ม Blog ครับ พอดีเป็นคนเอาไปแชร์ แต่ดันลืมดูว่าเนื้อหาแหว่งไปเยอะ 55 ผมเลยเอามา Re-Write ใหม่ในปี 2017 (ของเดิมปี 2015) เพราะ เขียนใหม่เกือบหมด 555 ตอนนั้นเหมือนมืนๆ ไป เข้าเนื้อหากันเลยดีกว่าครับ Fusion Log (Fuslog) คือ อะไร โปรแกรม Fuslog มันตัวช่วยของ .NET ในกรณีลองเอาระบบไป Deploy แล้ว พบว่าหาไฟล์ที่นำไปติดตั้ง (Assembly) มีปัญหาขึ้นตอนเวลาเรียกใช้งาน (Runtime)  อาทิเช่น ไฟล์หาย, ไฟล์อยู่ผิด Path หรือ เวอร์ชั่นของไฟล์ไม่ตรงกัน เป็นต้นครับ โดยตัวนี้มีมาให้อยู่แล้วกับตัว .Net ครับ Fusion Log Viewer (Fuslogvw) คือ อะไร โปรแกรม Fuslogvw ตามชื่อเลยครับ เป็นหน้าจอ GUI ที่ช่วยในการจัดการ และดูไฟล์ Log ได้ง่ายขึ้นจากเดิมครับ มันมาคู่กับตัว Windows SDK ปกติอยู่ที่ Path นี่ครับ C:\Program Files (x86)\Microsoft SDKs\Windows\[[–SDK Version–]]\bin\[[–Optional NET Version–]] [[–SDK Version–]] คือ ตัว Version ของ SDK ครับ [[–Optional NET Version–]] คือ ระบุ Version ของตัว .Net ครับ เพิ่งมาเปลี่ยนโครงสร้างในตัว SDK เวอร์ชั่น v8.1A ตัวอย่าง ผมลองยกตัวอย่าง และใช้ Path ที่ส่วนใหญ่เวลาลงแล้ว อยู่ที่ไหนของ แต่ละ OS ไว้ อาทิเช่น…

[MITx: 6.00.1x] Introduction to Computer Science and Programming Using Python (Week 1)

สำหรับ Course นี้ มีแนะนำมาอีกทีครับ เห็นว่าเหมือนแนสคิดเดียวกับ Udemy ครับ แต่ใน EDX แต่ละ Course เป็นอาจารย์จากมหาวิทยาลัยชั้นนำของโลกมาเปิดครับ โดยจุดแข็งที่ผมชอบฟรีครับ ถ้าอยากได้ใบ Cert ต้องจ่ายเงินครับ มาเข้าเรื่องของ Week แรกที่เรียนดีกว่าครับ เนื้อหานี้เป็นการปูพื้นฐานครับ โดยผมมองว่าคนไม่จบสายคอมเรียนได้นะครับ เค้าไม่ลงลึกจนเกินไป 📚Introduction 📚Knowledge Management 📚Fixed & Stored Program 📚Basic Computer Architecture ตามรูปดีกว่าครับ Turing บอกถ้ามีการทำงานพื้นฐาน(Primitives Operation) เช่น การ Shift Bit/ AND / OR / NOT เป็นต้น เราสามารถประมวลทุกๆปัญหาได้บนโลก ถ้ามีปัญหาที่ต้องสร้าง Operation ใหม่ เราสามารถเพิ่มได้ โดยการทำ Abstract Data Type (เขียน Function ใหม่ และเรียกพวก Primitives Operation ด้านใน ถ้าใช้เครื่องเรียนพวก Assembly หรือ LC-3 ลองนึกดูว่า ถ้าต้องการหาเลขยกกำลัง มีขั้นตอนอะไรบ้าง) 📚Aspect of Language 📚แนวคิดการคิดโปรแกรมภาษา Python หลักๆ มีเรื่อง ที่เห็นว่ามันค่ามันเปลี่ยน เพราะมันแก้ Reference ใน Memory ให้เลย ง่ายๆสร้างใหม่นี่แหละ หลักการเต็มๆลองอ่าน Java และ C# ตัวอย่างอื่น พบ Upper Lower ครับ สำหรับ csv ใช้ตัว import csv ใน python มีอยู่แล้วนะ มีการใช้…

[CR] เอี่ยวไถ่ สุกี้โบราณ – ภาคสุกี้

หลังจากทำงานเสร็จ ได้เวลาประมาณ 1740 ผมรีบขึ้น BTS จากสถานีศาลาแดง ไปบางหว้าครับ พระอาทิตย์กำลังตกดินพอดีเลย จากนั้นต่อรถมาที่ The crystal SB ราชพฤกษ์ เพื่อมาลองมากิน สุกี้โบราณ ของร้านเอี่ยวไถ่ครับ โดยตัวร้านที่อยู่ชั้น 2 ให้กับประตูทางเข้าใหญ่ของหน้าเลยครับ โดยประวัติของร้านนี้เปิดมานานกว่า 50 ปีแล้วครับ สาขาแรกปัจจุบันตั้งอยู่ที่เชิงสะพานปิ่นเกล้า ถนนอรุณอมรินทร์ครับ สำหรับสาขาราชพฤกษ์เป็นสาขาที่ 2 ครับ เท่าที่ลองคุยกับพนักงานมา เข้าเรื่องดีกว่า เนื่องจากเพิ่งหายจากเจ็บคอ หมอบอกให้กินของร้อนๆ จัดไปตามหมอสั่ง 555 เมนูที่สั่ง – สุกี้โบราณ 320 บาท โดยในชุดสุกี้ชุดผสม – เป็ดปักกิ่ง 590 บาท (ลดจาก 990 บาทครับ) ถ้าจะสั่งรอนิดนึงนะครับ ประมาณ 20-30 นาทีเลย โดยใช้ชุดประกอบไปด้วย NOTE: สำหรับวิธีการทานเอาแผ่นแป้งวาง ใส่หนังเป็ด จากนั้นใส่เครืองเคียง + เนื้อเป็ด ราดซอสหวาน และม้วนจับยัดเข้าปากครับ – ก๋วยเตี๋ยวหลอดปู 240 บาท – อร่อยมากกก ปูเป็นปูครับ เนื้อเน้นๆ ราดซอสอร่อยยิ่งขึ้นครับ (เสียดายที่สั่งชุดเล็ก) – บะหมี่ผัก 3 ชุด 135 บาท – นอกจากนี้ สำหรับร้านที่ส่วนที่ดีหลักๆ เลย ส่วนทีไม่ดี ปิดท้ายด้วยค่าเสียหายครับ รวมแล้ว 1,374 บาท ร้านนี้มี Service Change 10% จำนวน 138 บาท เบ็ดเสร็จจ่ายไป 1,512 บาทครับ ถ้ามาครั้งหน้าส่วนตัวตัดเป็ดปักกิ่งออก (แต่ถ้าไม่มีโปรแล้วไป) ไปเสริมทางสุกี้แทนครับ และอยากลองเนื้อกระทะเจงกิสข่านครับ (เห็นโต๊ะตรงข้าม กินแล้วอยากลอง และนึกถึงบาร์บีก้อน 55555)

[MSSQL] มาปรับปรุง Query การตรวจสอบเรื่อง Lock ให้ดีขึ้น

จาก Blog ตอนที่แล้ว ผมได้เขียนไปเกี่ยวกับ [MSSQL] ตรวจสอบ Table ว่าถูก Lock หรือใช้งานโดย Application หรือไม่ ? จาก Query เดิม เรารู้แค่ว่า Table ไหน Lock เท่านั้น คราวนี้มาลองเพิ่มข้อมูลที่จำเป็น เพื่อให้ Dev หรือ DBA มาวิเคราะห์กันได้ง่ายขึ้นครีบ โดยข้อมูลที่มเพิ่มใน Query ได้แก่ Let’ s Go – ลองมาปรับ Query กัน จากตัว Query เดิม เราพบว่าข้อมูลหลายๆส่วน ในตัว DMV ของ MS SQL Server ไม่มีให้นะครับ ต้องเอา DMV ตัวอื่นๆ เข้ามาช่วยครับ ดังนี้ หลังจากเอา DMV ต่างๆ เข้ามาปรับปรุง โดย Query Version ใหม่ ดังนี้ครับ มาดูผลลัพธ์กันเลย มีหลาย Column เลย เนื่องจาก SELECT มาตาม Requirement ที่กำหนดไว้นะครับ สำหรับใครอยากรู้ว่า Column แค่ละตัว มันตรงกับ Requirement ไหน ลองดูจาก Comment ประกอบได้ครับ NOTE: Tools ของ SQL Server ที่ช่วยในการดู Lock นะ เข่น SQL Server Profiler หรือ Activity Monitor เป็นต้น แต่อันนี้เป็นอีกแนวทางหนึ่งครับ เผื่อกรณีที่ว่าไม่สามารถใช้ Tools ได้ครับ

[MSSQL] ตรวจสอบ Table ว่าถูก Lock หรือใช้งานโดย Application หรือไม่ ?

Microsoft SQL Server

ช่วงนี้น่าจะเป็การเขียน Blog ที่ดองๆไว้ให้เสร็จนะครับ (อันนี้ดองมาตั้งแต่ปี 2014 มาใส่ภาพประกอบตอน 2017 555) วันนี้สุดท้ายของเดือนแล้ว มาดูกันสำหรับตัว MS SQL Server เราตรวจสอบได้อย่างไรว่า Table ถูก Lock ไว้นะครับ โดยเจ้าตัว MS SQL Server สามารถตรวจสอบได้ว่า Tabel ไหนถูก Lock โดยดูจาก Query ชุดนี้ครับ ตัวอย่าง ผมทดสอบ โดยทำให้ Table Company ถูก Lock ด้วยคำสั่ง SQL ดังนี้ ทดสอบ Run และดูผลลัพธ์ ดูผลลัพธ์การพบว่า Query ที่เขียนขึ้นสามารถดีกได้ว่า Table ที่ถูก Lock คือ Table Company (แต่ผลลัพธ์ อาจจะเยอะนิดนึงนะครับ เดี๋ยว Blog ตอนหน้ามาจัดผลลัพธ์ให้อ่านง่ายขึ้นครับ) NOTE: ทดสอบเสร็จอย่าลืมคำสั่ง ROLL BACK นะครับ ถ้าเกิดลอง Run แล้วเกิด Error Msg 297, Level 16, State 1, Line 1 The user does not have permission to perform this action. สามารถแก้ได้โดย สำหรับใครสนใจของตัว DB2 สามารถอ่านได้จาก Blog นี้ครับ [DB2] มาดักดูว่าใครทำ DB ค้าง Reference