[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)

ฺBlog ตอนนี้การเรียนใน Week ที่ 2 แล้วครับ ซึ่งเปิดมาครั้งแรก โอ้ววววววว การบ้านน้อยดี พอเปิดไปบทถัดไปเท่านั้นแหละ “ชีวิตแค่โดนทำร้าย 5555” สำหรับ Week นี้ ในบทแรกเป็นการทบทวนของเก่ามากกว่าครับ ตั้งแต่ if-else ไปจนถึงแนวคิดของ  Guess ^ Check ซึ่งแนวคิดมันมีปัญหาที่ว่ามันช้ามากก หาทุกกรณีที่เป็นไปได้ครับ ตอนนี้มันมีวิธีที่เร็วกว่าไหม แต่ต้องรู้จักกับ Keyword พวกนี้ก่อนครับ Approximate Solutions – เราไม่ได้ต้องการวิธีการที่มันตรงแป๊ะ มันอาจจะมีวิธีการที่เร็วกว่า แต่ความแม่นยำลดลงไป ตัว Approximate มันหมายถึง การประมาณการ ถ้าในศัพท์ของวิชา Algorithm ที่ผมเคยเรียนมา คือ Optimal Solution ครับ Bisection Search – มันเป็นแนวคิดของแบ่งแยก และพิชิต (Divide & Conqure) ครับ โดยเราต้องอยู่จุดเริ่มต้น(Lower) และจุดสิ้นสุด(Upper) ที่เป็นไปได้ จากนั้นแบ่งหาที่ละครึ่ง (Bi section) ตัดไปเรื่อยๆ จนได้ค่าที่ใกล้เคียง (Approximate) ถ้าในตัวอย่างของผู้สอน เค้ายกเรื่องการหาค่า root ครับ ตาม Code เลย จากนั้นมาลงลึกตัว Float และ Faction ครับ โดยมองว่าตัวเครื่องคอม มันรู้จักแทนค่าตัวเลขได้อย่างไร ตอนนี้ใช้แนวคิดของเลขฐาน 2 ครับ แต่ถ้าใช้ตัวแปรประเภท Float ให้ระวังเรื่อง floating-point rounding error หลังจากจบบทแรกไป จะบอกว่ารู้พวกพื้นฐาน ถ้าใน Week ที่แล้วมัน คือ หัวใจ (Core Elements) บทถัดมาเรียกว่าอะไร เป็นการแทนปัญหาของรอบตัวเรา โดยการ Decomposition – แบ่งปัญหา/โจทย์ให้มันเล็กลง Abstraction…

[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 Knowlege Management Declarative knowledge = Statements of fact. เช่น ค่า PI = 3.14 / เก้าอี้มีสมุดสีแดงวางอยู่ เป็นต้น Imperative knowledge = A recipe or “how-to” ซึ่ง Recipe ผมชอบคำนี้ อาจารย์เปรียบเปรยได้ดีเลยครับ จริงมัน คือ ขั้นตอนการทำงาน (Algorithm) ครับ Fixed & Stored Program Fixed Program – ทำงานเฉพาะอย่าง ทำมาเฉพาะเจาะจงให้ประมวลผลงานอย่างเดียว เช่น ทำมาเพื่อคิดเลข / ทำมาเพื่อคำนวณวิถีของจรวด (จริง น่าจะมองว่าเป็น SW ที่มาเจาะจงกับ HW) Stored Program – ทำได้หลายอย่างเลย แล้วแต่เราสั่งให้มันทำอะไร เอาง่ายๆ เราต้องเขียนโปรแกรมบอกเครื่อง Basic Computer Architecture ตามรูปดีกว่าครับ A program counter The computer executes the instructions mostly in a linear sequence, except sometimes it jumps…

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

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

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

จาก Blog ตอนที่แล้ว ผมได้เขียนไปเกี่ยวกับ [MSSQL] ตรวจสอบ Table ว่าถูก Lock หรือใช้งานโดย Application หรือไม่ ? จาก Query เดิม เรารู้แค่ว่า Table ไหน Lock เท่านั้น คราวนี้มาลองเพิ่มข้อมูลที่จำเป็น เพื่อให้ Dev หรือ DBA มาวิเคราะห์กันได้ง่ายขึ้นครีบ โดยข้อมูลที่มเพิ่มใน Query ได้แก่ ชื่อ Database SQL ที่มีปัญหา รูปแบบการ Lock เครื่องไหนที่ทำ DB Lock และใช้ Application อะไร ใช้ User อะไรเข้ามาทำรายการ และเข้า DB มาตอนเวลาไหน Let’ s Go – ลองมาปรับ Query กัน SELECT OBJECT_NAME(P.OBJECT_ID) AS TABLENAME , RESOURCE_TYPE , RESOURCE_DESCRIPTION FROM SYS.DM_TRAN_LOCKS L JOIN SYS.PARTITIONS P ON L.RESOURCE_ASSOCIATED_ENTITY_ID = P.HOBT_ID จากตัว Query เดิม เราพบว่าข้อมูลหลายๆส่วน ในตัว DMV ของ MS SQL Server ไม่มีให้นะครับ ต้องเอา DMV ตัวอื่นๆ เข้ามาช่วยครับ ดังนี้ SYS.DM_EXEC_SESSIONS SYS.DM_EXEC_CONNECTIONS SYS.DM_TRAN_SESSION_TRANSACTIONS SYS.DM_TRAN_ACTIVE_TRANSACTIONS SYS.DM_EXEC_SQL_TEXT หลังจากเอา DMV ต่างๆ เข้ามาปรับปรุง โดย Query Version ใหม่…

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

ช่วงนี้น่าจะเป็การเขียน 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