Spam Alert – หลอกเป็นธนาคารส่งแจ้งเตือนเรื่องการลงชื่อเข้าใช้อุปกรณ์ใหม่

2 เมษายน 2563 08:18 พบอีเมล “หลอกลวง” ว่ามาจากธนาคาร กรุงไทย แจ้งเกี่ยวกับ อุปกรณ์ใหม่ลงชื่อเข้าใช้ ลักษณะอีเมลเป็นดังภาพ หากผู้ใดได้รับ ลบทิ้งได้ทันที เพิ่มเติม: ลักษณะการโจมตีเช่นนี้ มักจะใช้ “ข้อความแสดงลิงค์” เป็น URL ที่น่าเชื่อถือ แต่เมื่อเอาเมาส์ไปวาง ก็จะพบว่า เป็น Link ไปที่อื่น ในกรณีนี้ อ้างว่าเป็น https://www.ktbnetbank.com แต่จริง ๆ ส่งไปยัง https://www.onlinenewstrend.com/ ทางระบบ PSU Email ได้ทำการตรวจสอบ และแจ้งเตือนผู้ใช้อยู่แล้ว กรุณาสังเกต Disarmed: อีเมลฉบับนี้ ปลด Script อันตรายออกให้แล้ว MailScanner has detected a possible fraud attempt: แจ้งแล้วว่า มีความพยายามหลอกลวง “www.onlinenewstrend.com” claiming to be https://www.ktbnetbank.com: เนี่ย อีกเว็บนึง เคลมว่าเป็นอีกเว็บนึง จากบทความก่อนหน้านี้ เรื่อง ฉันโดนแฮ๊กหรือเปล่า !?!?! ลองทำตามขั้นตอนที่แนะนำดู จะพบว่า อีเมลนี้ มาจากอินเดีย หวังว่าจะเป็นประโยชน์ครับ

Read More »

อยากดึงข้อมูลมาแสดงใน TreeView จะทำอย่างไรดี?

          ในบทความนี้ ผู้เขียนก็ยังคงอยู่ในเรื่องของ TreeView เช่นเคย เพื่อต่อยอดจากบทความก่อนในหัวข้อเรื่อง “มาทำความรู้จักกับพื้นฐานการใช้งาน “TreeView” สำหรับมือใหม่กันดีกว่า” ที่เป็นบทความเกี่ยวกับเรื่องการแนะนำวิธีจัดการกับ TreeView ด้วยการกำหนดคุณสมบัติต่างๆ แต่งสีเติมกลิ่น ให้ TreeView ของเราน่าสนใจยิ่งขึ้น แต่ข้อมูลที่นำมาใช้ในการแสดงผลยังคงเป็นในลักษณะกำหนดเองเป็นค่าตายตัวจากหน้าจอและยังไม่เน้นเรื่องดึงข้อมูลจากฐานข้อมูล ในบทความนี้จึงถือเป็นภาคต่อจากบทความที่แล้วและขอเน้นในส่วนของการดึงข้อมูลมาแสดงผลบน TreeView ในเชิงโปรแกรมกันบ้าง เพื่อให้ผู้อ่านได้ความรู้ทั้งในส่วนการกำหนดคุณสมบัติและการดึงข้อมูลมาแสดงไปประยุกต์ใช้ในงานพัฒนาร่วมกันได้ ขั้นตอนในการดึงข้อมูลจากฐานข้อมูลมาแสดงใน TreeView สร้าง TreeView ที่ต้องการใช้ในการแสดงผลข้อมูลตัวอย่าง code ในฝั่ง Client <body> <form id=”form1″ runat=”server”> <asp:TreeView ID=”TvOrganization” runat=”server” > </asp:TreeView> </form> </body> ติดต่อฐานข้อมูลเพื่อใช้ในการแสดงผล ซึ่งในตัวอย่างนี้จะขอสมมุติข้อมูลจาก datatable ที่สร้างขึ้นแทนตัวอย่าง code ในฝั่ง Server (C#) ฟังก์ชั่นตอน Page_Load protected void Page_Load(object sender, EventArgs e) { if (!this.IsPostBack) { ///////ดึงข้อมูลวิทยาเขต โดยในการใช้งานจริงจะเป็นการติดต่อกับฐานข้อมูลเพื่อดึงค่าวิทยาเขตมาแสดง DataTable dt = this.GetCampusData(); ///////เรียกใช้งานฟังก์ชั่น PopulateTreeView() เพื่อนำค่าข้อมูลวิทยาเขตมาแสดงผลใน TreeView โดยในกรณีนี้จะเริ่มสร้างจาก root node โดยส่งค่าพารามิเตอร์ของ parentId เป็น 0 this.PopulateTreeView(dt, 0, null); } } ฟังก์ชั่นดึงข้อมูลวิทยาเขตและคณะ/หน่วยงาน private DataTable GetCampusData() { ///////เตรียมข้อมูลวิทยาเขต เนื่องจากในกรณีนี้เป็นการสมมุติโครงสร้างและข้อมูลวิทยาเขตโดยสร้างเป็น DataTable เสมือนเป็นตารางวิทยาเขตในฐานข้อมูล DataTable dtCampus = new DataTable(); dtCampus.Columns.AddRange(new DataColumn[2] { new DataColumn(“CampID”, typeof(int)), new DataColumn(“CampNameThai”,typeof(string)) }); dtCampus.Rows.Add(“01”, “วิทยาเขตหาดใหญ่”); dtCampus.Rows.Add(“02”, “วิทยาเขตปัตตานี”); dtCampus.Rows.Add(“03”, “วิทยาเขตภูเก็ต”); dtCampus.Rows.Add(“04”, “วิทยาเขตสุราษฎร์ธานี”);dtCampus.Rows.Add(“05”, “วิทยาเขตตรัง”); return dtCampus; } private DataTable GetFacultyData() { ///////เตรียมข้อมูลคณะ/หน่วยงาน ในกรณีนี้เป็นการสมมุติโครงสร้างข้อมูลคณะ/หน่วยงานและสร้างเป็น DataTable โดยมีการระบุรหัสของวิทยาเขตไว้ด้วย ซึ่งในการทำงานจริงจะเป็นการดึงข้อมูลจากตารางที่เก็บข้อมูลคณะ/หน่วยงานแทน DataTable dtFaculty = new DataTable(); dtFaculty.Columns.AddRange(new DataColumn[3] { new DataColumn(“FacID”, typeof(int)), new DataColumn(“FacNameThai”,typeof(string)) , new DataColumn(“CampID”,typeof(string)) }); dtFaculty.Rows.Add(“01”, “สำนักงานอธิการบดี”,”01″); dtFaculty.Rows.Add(“02”, “ศูนย์คอมพิวเตอร์”, “01”); dtFaculty.Rows.Add(“03”, “วิศวกรรมศาสตร์”, “01”); dtFaculty.Rows.Add(“54”, “คณะรัฐศาสตร์”, “02”); dtFaculty.Rows.Add(“07”, “ศึกษาศาสตร์”, “02”); dtFaculty.Rows.Add(“36”, “วิทยาการสื่อสาร”, “02”); dtFaculty.Rows.Add(“81”, “ศูนย์การเรียนรู้”, “03”); dtFaculty.Rows.Add(“56”, “คณะศิลปศาสตร์และวิทยาศาสตร์”, “04”); dtFaculty.Rows.Add(“44”, “คณะเทคโนโลยีและการจัดการ”, “04”); dtFaculty.Rows.Add(“46”, “คณะพาณิชยศาสตร์และการจัดการ”, “05”); dtFaculty.Rows.Add(“66”, “คณะสถาปัตยกรรมศาสตร์”, “05”); return dtFaculty; } ฟังก์ชั่นที่ใช้ในการวนแสดงข้อมูลที่ได้จากวิทยาเขตและคณะ/หน่วยงานมาแสดงใน TreeView private void PopulateTreeView(DataTable dtParent, int parentId, TreeNode treeNode) { ///////ดึงค่าข้อมูลคณะ/หน่วยงาน DataTable dtChild = this.GetFacultyData(); DataRow[] drChild; ///////วนค่าข้อมูลวิทยาเขตจาก dtParent ที่เป็นพารามิเตอร์ที่ส่งมา foreach (DataRow

Read More »

มาทำความรู้จักกับพื้นฐานการใช้งาน “TreeView” สำหรับมือใหม่กันดีกว่า

          เชื่อว่านักพัฒนาโปรแกรม Web application ด้วย .Net หลายๆท่านอาจจะเคยได้ยินชื่อของเจ้า “TreeView” กันมาบ้างแล้ว หรือบางท่านก็อาจจะเกือบลืมเจ้าเครื่องมือตัวนี้ไปแล้วก็ตามเพราะมันอาจจะไม่ใช่เครื่องมือที่ถูกหยิบมาใช้บ่อยนัก ในบทความนี้ผู้เขียนจึงขอหยิบยกเจ้า “TreeView” มาปัดฝุ่น แนะนำลูกเล่นการใช้งาน การกำหนดคุณสมบัติต่างๆ และวิธีการใช้งานกันอย่างคร่าวๆก่อน เพื่อเป็นการปูพื้นฐานให้กับมือใหม่หัดใช้ TreeView และรื้อความทรงจำให้กับผู้ที่เคยใช้ TreeView มาก่อนหน้านี้ เผื่อความสามารถที่ซ่อนอยู่จะไปเตะตาตรงใจท่านใดที่กำลังมองหาการทำงานแบบนี้อยู่พอดี จนอยากนำเครื่องมือตัวนี้ไปประยุกต์ใช้เป็นอีกหนึ่งทางเลือกในการแสดงผลข้อมูลในงานพัฒนาของท่านกันอีกครั้งได้ค่ะ           แต่ก่อนจะพูดถึงลูกเล่นการทำงานของ TreeView คงต้องเกริ่นนำกันก่อนว่าเจ้าเครื่องมือตัวนี้ถูกจัดอยู่ในจำพวก Navigation Control ซึ่งบางคนอาจเกิดคำถามว่า ข้อมูลแบบใดบ้างจึงจะเหมาะนำมาใช้งานแสดงผลกับเจ้า TreeView นี้ ซึ่งโดยความเห็นส่วนตัวแล้วนั้น ผู้เขียนคิดว่าข้อมูลที่เหมาะจะมาแสดงผลด้วย TreeView ควรจะเป็นข้อมูลที่มีลักษณะเป็นแบบ Hierarchy หรือเป็นลักษณะโครงสร้าง มีลักษณะข้อมูลเป็นลำดับชั้นย่อยๆ เช่น โครงสร้างหน่วยงาน โครงสร้างองค์กร หรือข้อมูลที่เป็นประเภทหลักและประเภทย่อย เป็นต้น และเพื่อไม่ให้เป็นการเสียเวลา เรามาเรียนรู้วิธีจัดการกับ TreeView ของเรากันเลยดีกว่าค่ะ ขั้นตอนสร้าง TreeView อย่างง่ายจาก Tool box ของ Visual studio .Net สามารถทำได้ดังนี้ สร้าง TreeView โดยเลือกจากแท็บเครื่องมือ ในกลุ่ม Navigation มาวางในหน้าจอ design ของเรา ดังรูป การเพิ่มและจัดการ node ให้กับ TreeView ได้โดยการคลิกเลือก “Edit Nodes…” ดังภาพ การจัดการเพิ่ม-ลดข้อมูล node ในระดับต่างๆ จะแสดงภาพดังหน้าจอต่อไปนี้ เพื่อใช้ในการจัดการเพิ่ม-ลดข้อมูล node ในระดับต่างๆ ดังนี้ โดยขั้นตอนการเพิ่ม – ลด node อย่างคร่าวๆ มีดังนี้ การเพิ่ม node ที่เป็น root (ลำดับแรกสุด) โดยการกดปุ่ม การเพิ่ม node ระดับย่อย(child node) โดยการกดปุ่ม การลบ node ที่ไม่ต้องการ สามารถทำได้โดยการกดปุ่ม ปรับเปลี่ยนระดับความลึกของ node โดยคลิกเลือก node ที่ต้องการจัดการและกดปุ่ม เพื่อเลื่อนระดับความลึกมากน้อยได้ตามต้องการ ซึ่งจะเห็นได้ว่ามีการทำงานคล้ายกับการเยื้องย่อหน้าใน MS Word ที่เราคุ้นเคยกันดี การเลื่อนลำดับบน-ล่างให้กับ node สามารถทำได้โดยกดปุ่ม ตัวอย่าง หน้าจอการจัดการ node ใน TreeView               จากภาพตัวอย่าง มีการเพิ่มและจัดการ node ข้อมูลโครงสร้างองค์กรตั้งแต่ระดับมหาวิทยาลัย วิทยาเขต และคณะ โดยการกำหนดค่าตายตัวจากหน้าจอ design ด้วยการระบุเอง ไม่ได้ดึงจากฐานข้อมูล ซึ่งท่านสามารถทดลองเพิ่มและจัดการได้ด้วยตัวเองเพื่อให้เข้าใจการทำงานมากขึ้น โดยลองทำตามขั้นตอนการจัดการ node ข้างต้น               นอกจากการเพิ่ม-ลด node แล้ว ท่านยังสามารถกำหนดคุณสมบัติให้กับ node ได้ด้วย โดยคลิกข้อมูล node ที่ต้องการจัดการจากฝั่งซ้ายมือ และกำหนดคุณสมบัติของ node ดังกล่าวในฝั่งขวามือ ซึ่งรายละเอียดการกำหนดคุณสมบัติต่างๆ ในแต่ละ node จะขอพูดในหัวข้อถัดไป (ข้อ 4.)ค่ะ กำหนดคุณสมบัติให้กับแต่ละ node เราสามารถกำหนดคุณสมบัติ (Properties) เฉพาะให้กับแต่ละ node ได้ โดยจะขอพูดถึงคร่าวๆ ที่คิดว่าน่าจะใช้อยู่บ่อยๆและน่าสนใจ ดังนี้ ShowCheckBox : เป็นการระบุว่าจะให้ node ดังกล่าวแสดงช่องให้เลือกหรือไม่ Checked : เป็นการระบุว่า ต้องการให้มีการทำเครื่องหมายถูกไว้ในกล่อง check box หรือไม่ ซึ่งต้องมีการกำหนดควบคู่กับ ShowCheckBox = “true” นั่นเอง Text : ระบุว่าต้องการให้ node ดังกล่าวแสดงข้อความอะไร Value : ระบุค่าที่จะกำหนดให้กับ node ดังกล่าว

Read More »

วิธีส่ง email ออกไปในนามหน่วยงาน ด้วย PSU Webmail

เนื่องจาก ตอนนี้มีหลายหน่วยงาน มีความต้องการใช้ “email ส่วนกลาง” ที่เป็น Mailbox แยกจากบุคคล กันมามากจึงขอเรียนให้ทราบถึงปัญหาที่หน่วยงานของท่านจะเจอ ก่อนจะตัดสินใช้วิธีการดังกล่าว ไม่รู้ใครอ่าน ไม่รู้ว่าใครส่งออกไป ไม่รู้ว่าใครลบ email สำคัญนั้น ไม่รู้ว่าใครเปลี่ยนพาสเวิร์ด วิธีที่ทำกันมาตลอด คือ การสร้าง Groupmail นั้น แต่ละกลุ่ม มีสมาชิกผู้รับได้หลายคน ทำให้ช่วยกันดูแลได้ การส่งออก สามารถตั้งได้ว่า ส่งออกไปในนามหน่วยงาน และสามารถตรวจสอบได้ว่า ใครเป็นคนส่ง สามารถสร้าง Archive ได้ หมายความว่า ย้อนกลับมาดูได้ว่า เรื่องเหล่านี้ พูดคุยกันไปว่าอย่างไรบ้าง สมาชิกบางคน ลบ email ไป แต่ การสนทนา ยังอยู่ หมดปัญหา 1 account แต่รู้รหัสผ่านกันหลายคน สำหรับวิธีการตั้งค่า ให้ แต่ละคนในกลุ่ม ส่งออกไปในนามหน่วยงานได้ บน PSU Webmail คลิกที่ เมนู Options 2. คลิก Personal Information 3. คลิก Edit Advanced Identities 4. จากนั้น กรอกข้อมูล Full Name, E-Mail Address และ Signature มีข้อที่ *** ต้องห้าม *** อยู่อย่างนึงคือ Fullname ต้องไม่มีเครื่องหมายพิเศษใด ๆ โดยเฉพาะ เครื่องหมาย “.” จากนั้น กดปุ่ม Save/Update 5. เมื่อต้องการส่ง Email แบบ Compose สามารถเลือกได้ว่า ต้องการให้ออกไปนามหน่วยงาน เมื่อผู้รับได้รับ ก็จะเห็นแบบนี้ ครับ

Read More »

How to create LVM volume group and logical volume

LVM ย่อมาจาก Logical Volume Manager ความสามารถของ LVM คือสามารถสร้าง logical partition ขยายไปบนฮาร์ดดิสก์หลายๆ ลูกได้ ขั้นตอนต่อไปนี้เป็นขั้นตอนที่ทำบน CentOS หรือ Oracle Linux หรือ ค่าย Redhat Enterprise Linux ส่วนฝั่ง Debian ก็สามารถใช้คำสั่งเดียวกันทำงานเหมือนกัน แต่อาจจะต้องติดตั้งโปรแกรมเพิ่ม โดยขนาดสูงสุดที่ LVM ทำได้ขึ้นกับชนิดของ CPU และ Kernel ที่ใช้งาน สำหรับ Kernel 2.4 บน CPU 32-Bit มีขนาดได้ไม่เกิน 2TB สำหรับ Kernel 2.6 บน CPU 32-Bit มีขนาดได้ไม่เกิน 16TB สำหรับ Kernel 2.6 บน CPU 64-Bit มีขนาดได้ไม่เกิน 8EB ป้จจุบัน Kernel รุ่น ? CPU 64-Bit ยังไม่มีคำตอบ แต่เมื่อ format ให้มีระบบไฟล์แบบ ext4 จะสร้างพาทิชั่นได้ไม่เกิน 1EB เท่านั้น ขึ้นกับ file system ใช้งานด้วย เริ่มได้ เข้าระบบด้วยบัญชีผู้ใช้ที่มีสิทธิ์ของ root ซึ่งอาจจะเป็น root เอง หรือ user ที่อยู่ในกลุ่ม wheel หากเข้าด้วยบัญชีผู้ใช้อื่นๆ ที่ไม่ใช่ root ให้สั่งคำสั่ง หรือ จึงจะสามารถทำคำสั่งต่อไปได้ ตรวจสอบว่ามีฮาร์ดดิสก์ลูกไหนถูกใช้งานอยู่บ้างด้วยคำสั่ง ได้ผลลัพธ์ประมาณดังรูป จากภาพข้างต้น /dev/sda ถูกใช้งานอยู่แล้วคือ /dev/sda1 และ /dev/sda2 ให้ตรวจสอบว่ามีดิสก์ลูกอื่นอีกหรือไม่ด้วยคำสั่ง จะเห็นว่ามี /dev/sdb, /dev/sdc และ /dev/sdd ที่ว่างอยู่ จะใช้ /dev/sdb เริ่มจากสร้างพื้นที่สำหรับทำ LVM ก่อนด้วยคำสั่ง กด n ตามด้วย p ตามด้วย 1 แล้ว enter 2 ครั้ง กด t แล้วพิมพ์ 8e แล้วกด w ดังภาพ สร้าง LVM physical volume โดยใช้คำสั่ง pvcreate สร้าง LVM volume group ชื่อ vg_u01 สร้าง LVM logical volume group ชื่อ lv_u01 ใน volume group ที่ชื่อ vg_u01 โดยให้มีขนาดทั้งหมดที่มีอยู่ใน vg_u01 ดังภาพ ดูสถานะว่า LVM สร้างเสร็จแล้วด้วยคำสั่ง ดูสถานะว่ามี Physical Volume เท่าไหร่ ด้วยคำสั่ง ก่อนใช้งานอย่าลืม format โดย device ที่จะต้อง format จะกลายเป็น /dev/vg_u01/lv_u01 ให้มีชื่อว่า u01 สร้าง mount point ให้กับ lv_u01 mount lv_u01 เข้ากับ /u01 ตรวจสอบว่า /u01 ถูกเรียกใช้งานแล้ว ใส่ -h เพื่อให้ระบุขนาดเป็น GMK สั่งให้ mount อัตโนมัติทุกครั้งที่บูตเครื่องเพิ่มข้อความต่อไปนี้ในแฟ้ม /etc/fstab จบขอให้สนุก อาจจะยังไม่เห็นภาพว่าแล้วมันกระจายไปดิสก์หลายๆ ลูกได้อย่างไร อธิบายง่ายๆ /u01 สามารถอยู่ได้บนฮาร์ดดิสก์มากกว่าหนึ่งลูก โดยเห็นเป็นพื้นที่เดียวกันคือ

Read More »