Web Security Lesson #2

สวัสดีครับ ช่วงนี้ผมเจอกับเรื่อง security บ่อยมาก ก็เลยมาเขียน Lesson #2 ซะเลย
สำหรับผู้ที่หัดเขียนโปรแกรมใหม่ หรือว่าเขียนมานานแล้ว แต่ไม่ได้ใส่ใจตรงนี้เท่าไรนัก
ลองมาอ่าน ตอนนี้ดูกันครับ เกี่ยวกับการ upload file ไม่ว่าจะเป็น images, video
หรืออะไรก็ตามที่ต้องใช้ การ upload คือให้ user สามารถ upload อะไรไปไว้ที่ server ได้

สิ่งที่ควรระวัง คือ
– ต้องกันไม่ให้ upload file ที่สามารถทำงานได้ เข้าไปบน server เช่น .php, .pl, .asp, .cgi
– การใช้ java script check ประเภทของ file หรือกันประเภทของ file ไม่ควรทำ เพราะ
hacker สามารถ สั่งไม่ให้ browser รัน javascript ได้
– การ check mine type ของ file นั้นไม่เพียงพอ เพราะ hacker สามารถ save file เป็น
type ต่างๆ ตามที่เค้าต้องการได้ เช่น จาก c99.php เป็น c99.jpg แบบนี้ ก็จะสามารถ
upload file php ขึ้นไปรันบน server ได้แล้ว ถึงจะเป็น .jpg ก็จริง แต่ว่า hacker
มีวิธีในการ rename file มากมาย ที่เกิดจากช่องว่างของโปรแกรมในส่วนต่างๆ
– การ check ว่าเป็นรูป จริงหรือไม่ ควรใช้ การ getimagesize() จะน่าเชื่อถือกว่า
ว่าเป็นรูปจริงๆ
– ใน directory ที่ใช้เก็บรูปหรือ file นั้น จำเป็นอย่างยิ่ง ที่จะต้องให้ พวก script ต่างๆ
สามารถทำงานได้ เพราะว่าโอกาสที่ในส่วนของการ upload มีสูง เราจริงควรดูตรงนี้ให้ดี
สำหรับวิธีง่ายๆ ก็คือ สร้าง .htaccess สำหรับ PHP ถ้าเราจะไม่ให้ทำงานใน directory
นี้ได้ ก็ให้ใส่ค่านี้ลงไป php_flag engine off คราวนี้ .php ต่างๆ ก็จะทำงานไม่ได้แล้ว

สำหรับเรื่องพวกนี้ เราควรใส่ใจมาก เพราะถ้าเกิดมีการหลุดของพวก php shell เข้าไปแล้ว
hacker สามารถทำทุกอย่างใน server ได้อย่างเต็มที่ ที่นิยมกันก็คืือ c99, r57

วันหลังผมจะมาเขียนว่า เราจะสามารถหาพวก php shell อันตรายเหล่านี้ใน server เรา
ได้อย่างไร ท้ายที่สุด อยากฝากว่าอย่าละเลยเรื่อง security เพราะพลาดเพียงนิดเดียว
สิ่งที่ไม่คาดคิด หรือหายนะ อาจจะมาเยือนได้ 🙂

สำหรับ Video สอนเกี่ยวกับเรื่อง Web Security ที่น่าสนใจจาก UC Berkeley
สามารถเข้าดูได้ที่ http://61.90.198.151/ucb/

Facebook Comments Box

Web Security Lesson #1

ผมไม่ได้เขียน blog มาหลายวันละ เพราะว่า มัวแต่ up status ตัวเอง ลง Facebook
วันนี้ เลยอยากมาเขียน blog ในกึ่งวิชาการนิดๆ หน่อยๆ เพราะว่า ที่ผ่านมา เจอกับ
การละเลยเรื่อง security กันมากเหลือเกิน อันจะนำไปสู่ ความวุ่นวาย ในอนาคตได้
แต่ผมจะไม่ได้เจาะลึกมาก ถ้าอยากรู้ลึกกว่านี้ ต้องไปศึกษา ทดลองกันเองครับ ..

สิ่งที่ผมอยากจะเขียนในวันนี้ ก็คือ เรื่องการเก็บรายละเอียดของ user และ password
และรายละเอียดต่างๆ นาๆ ของ user ที่เข้ามาใช้งานระบบ ส่วนใหญ่ตรงนี้
บางทีเราไม่ได้ให้ความสำคัญกันเท่าไร บางทีเก็บ password แบบ paintext คือ
ไม่ได้เข้ารหัสอะไรเลย ใส่อะไรมาเก็บแบบนั้น ดีขึ้นมาหน่อย ก็ md5 แต่ว่ามันก็แกะไม่ยาก
มาอีกหน่อยก็ base64 ซึ่งทุกอย่างที่ว่ามานี้ มัน ไม่ปลอดภัยเลยจริงๆ ถ้ามีใครได้ data
ในส่วนนี้ไป มันไม่อันตรายเฉพาะแค่นี้ แต่มันอันตรายมากๆ เพราะว่า เมื่อมีข้อมูล ของคนคนนึง
hacker สามารถ ไปต่อยอดได้เยอะ เพราะว่า คนคนเดียวกัน มักจะใช้ password เดิมๆ
ในทุกๆ เว็บที่เข้าใช้งาน ..
ส่วนถ้าจะถามผมว่า จะเก็บแบบไหนดี ผมว่า การเข้ารหัส โดยใช้ Private Key น่าจะดีสุด
หรือไม่ก็สร้าง function สำหรับการเข้ารหัส password เอง ก็จะดีกว่า function มาตรฐาน
ตรงนี้ แค่การเก็บ data ของ user ก็ต้องคำนึงถึงเยอะแล้ว ..

อีกส่วนนึง ก็คือส่วนของการ login ผมเจอหลายๆ case มากๆ ที่ง่ายสุดก็คือ มี form
แล้วมี hidden ไว้ ว่า password ที่ต้องกรอกคืออะไร ถ้าถูก ก็ให้ผ่าน อันนี้ สมัยก่อน
ก็อาจจะใช้กัน ผมเองเขียนโปรแกรมแรกๆ ก็ใช้วิธีนี้ เพราะไม่มี idea ที่จะเขียนแบบอื่น
ไม่ได้เก็บ data ลง DB แบบสม้ยนี้ แต่เก็บลง text file ทั้งหมด ..
ที่เจอต่อมาก็คือ check cookies หรือ sessions ว่ามีหรือเปล่า ถ้ามี ก็ให้ผ่านเข้าระบบ
ไปในส่วน admin ได้ ซึ่งตรงนี้ เราสามารถแก้ไขหรือปลอม cookies และ sessions ได้ครับ
ทำให้เข้าระบบได้โดยง่าย หรืออีกอย่างนึงก็คือ cookies ไม่ได้มีการเข้ารหัสอะไรเลย
ก็ทำให้เราแก้ไข cookies แล้วเข้าใช้งาน account ของคนอื่นได้ อันนี้ก็เป็นปัญหา ..

อีกอย่างนึงก็คือ ไม่มีการกรองค่าที่ส่งเข้าไป ปล่อยให้มีการใช้ SQL Injection เข้าไปได้
ทำให้ สามารถเข้าระบบได้ง่ายๆ อย่างเช่น ใส่ password=aa’ or 1 like ‘1 แบบนี้
ถ้าไม่มีการกรอง ระบบก็จะหลุดให้เข้าไปได้ เพราะว่า 1 like 1 เป็น true เสมอ ..
ตรงนี้รายละเอียดเยอะมาก ไว้ผมจะพูดละเอียดอีกครั้งครับ ..

สุดท้ายก็คือ ระบบการ forget password ที่ไม่ดีพอ ที่ให้ใครที่รู้ user หรือ email สามารถ
ไป forget password ได้ โดยส่ง password ง่ายๆ มาให้ทาง mail ไม่ต้องมีการ activate
จาก link ที่ส่งให้ เพื่อไปเปลี่ยน password ใหม่ แบบนี้ ก็ทำให้ hacker เดาทางถูก
แค่ Brute Force ง่ายๆ เข้าไป ก็ได้ password ละ เพราะว่าไม่ได้มีการ check
ค่าที่ได้ เวลา login ผิด กับ ถูก มันออกมาต่างกันอยู่แล้ว จับทางตรงนี้ได้ ก็จบ ได้
password ง่ายๆ ..

ผมขอพูดถึงแค่นี้ก่อนนะครับ แล้วจะมาเล่าเรื่อง Web Security อื่นๆ ที่เราควรคำนึง
ให้ฟังอีกวันหลังครับ 🙂

Facebook Comments Box

แนะนำกล่องรับสัญญาณดาวเทียม truelife+

กล่องรับสัญญาณดาวเทียม truelife+
http://www.weloveshopping.com/truelifeplusbox/special.php

สวัสดีครับ วันนี้ผมมีกล่องรับสัญญาณดาวเทียม มาแนะนำครับ ตอนนี้ค่ายต่างๆ
แข่งขันกันออก กล่องรับสัญญาณดาวเทียม มากันเยอะมาก ไม่ว่าจะเป็น PSI
ที่เป็นเจ้าแห่งจานดำ ในพื้นที่ต่างจังหวัด ค่ายเพลงยักษ์ใหญ่ของไทย
Grammy กับ  RS ก็ลงมาเล่นตลาดกล่องรับสัญญาณดาวเทียม กันแบบเต็มที่
เพราะว่าเป็นการกระจาย content ที่ตัวเองมีอยู่ ไปยังช่องรายการต่างๆ ของตัวเองได้ง่ายขึ้น

ฝั่งเจ้าตลาดจานแดง (true visions) เองตอนนี้ฐานลูกค้ากระจายไปทั่วประเทศ
ผมไปต่างจังหวัด ไปเขตชายแดน หรือแม้แต่ประเทศเพื่อนบ้าน อย่าง สปป. ลาว
ก็ยังเห็นบนหลังคา ติดจานแดงกัน เรียกว่า บ้าน 10 หลัง บนหลังคามีจานแดง 9 หลัง
เลยก็ว่าได้ .. แต่เอาเข้าจริง  ก็เกิดคำถามในใจว่า ที่ติดอยู่เป็นจานแดงก็จริง
แต่ตัวกล่องรับ เป็น dreambox หรือเปล่า เพราะว่าสมัยนี้การลักลอบใช้งาน
ที่เรียกว่ากล่อง dreambox กระจายไปทั่ว มีทั้งแบบเก็บรายเดือน  100-200
และแบบขายขาด ดูได้ตลอดก็มี แต่กล่องพวกนี้ถือเป็นการละเมิดลิขสิทธิ ผิด กฎหมายนะครับ
แล้วก็เอาความแน่นอนไม่ได้ บางทีซื้อกล่อง dreambox มา แล้วผู้ขายที่อ้างว่าดูได้ตลอดชีพ
อยู่ๆ ปิด server dreambox หนีก็มี ต้องมาลำบากหาผู้บริการใหม่อีก ของผิด กฎหมาย
อยู่ได้ไม่นานหรอกครับ ..  ใช้ของจริงแบบถูกกฎหมายกันดีกว่า ..
ตอนนี้ข่าววงในแจ้งมาว่าทาง true visions กำลังเปลี่ยนการเข้ารหัสใหม่ จะทำให้ dreambox
ทั้งระบบ จะใช้งานไม่ได้ ก็ต้องรอดูกันต่อไปครับ ..

ที่ผมจะมาแนะนำวันนี้ ก็คือกล่องรับสัญญาณดาวเทียม truelife+  ครับ ไม่มีรายเดือน
ซื้อกล่องครั้งเดียวดูได้ตลอดครับ ราคาเริ่มต้นเพียง 1290 บาท เท่านั้นครับ
ดูได้สูงสุดถึง 240 ช่อง สามารถนำไปใช้ได้กับจานทุกสีครับ สำหรับคอกีฬา คอบันเทิง
คอหนัง คอท่องเที่ยว ไม่ควรพลาดครับ เพราะมีช่องรายการดีๆ ให้คุณได้รับชม 24 ชม.
ผมเองก็ว่าจะซื้อไปติดที่บ้านผมเหมือนกันครับ  ..

รายละเอียดเพิ่มเติม
http://www.weloveshopping.com/truelifeplusbox/special.php

 

Facebook Comments Box

iPhone 4S True ราคา 50%

iPhone 4S True ราคา 50%​

สวัสดีครับ หลายๆ ท่านสอบถามผมมา เกี่ยวกับ iPhone ของทรู ที่ลด 50%
สำหรับลูกค้า True Online และ True Visions ครับ สำหรับรายละเอียด
เพิ่มเติมอ่านได้จากหน้าเว็บ หรือสอบถามที่ True Shop ใกล้บ้านท่านได้เลยครับ

ถ้าถามผมว่าคุ้มไหม กับค่าเครื่องราคาเท่านี้ คุ้มมากแน่นอนครับ เพราะว่า
ค่าบริการ Package XL 899 ก็จ่ายรายเดือนแค่  899 บาท แต่ได้โทร 500 นาที
และ 3G/EDGE/GPRS/WiFi แบบ Unlimited ซึ่งเหมาะกับการใช้งาน กับ iPhone
และเหมาะกับ life style ในชีวิตทั่วๆ ไป สำหรับท่านที่ชอบท่องเว็บ, check mail
เล่น Facebook, Chat ผ่าน Line อะไรแบบนี้ ..
เพราะว่าถ้าเป็น Package ของค่ายอื่นๆ จะแพงกว่านี้มาก และ 3G  ของ True  เอง
ก็ดีที่สุด พร้อมที่สุด และครอบคลุมพื้นที่ให้บริการมากที่สุดในตอนนี้  ..

URL: http://truemove-h.com/iphone.aspx

Facebook Comments Box

Happy New Year 2012

สวัสดีปีใหม่ครับ 2012 ครับ มีความสุขกันทุกๆ ท่านครับ 🙂

สวัสดีปีใหม่ครับ 2012 เพื่อนๆ พี่ๆ น้องๆ ทุกท่าน ในวาระดิถี ขึ้นปีใหม่นี้
ขออำนาจแห่งคุณพระศรีรัตนตรัย และสิ่งศักดิ์สิทธิทั้งหลายในสากลโลก
โปรดดลบันดาลให้ ทุกท่านประสบแต่ความสุข ความสำเร็จ ในหน้าที่การงาน
ไม่เจ็บป่วย สุขภาพแข็งแรง ร่ำรวยด้วยคุณธรรม ศิลธรรม และทรัพย์สินเงินทอง ..

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

ที่ผ่านมาในปี 2011
– ระบบต่างๆ ที่ดูแลอยู่ นิ่งมากขึ้น มีเวลาคิดทำอะไรมากขึ้น
– ได้คนมาช่วยทำงานเพิ่มมากขึ้น
– มีรายได้เสริมจากงานนอกมากขึ้น
– ได้เดินทางท่องเที่ยว ถ่ายรูปมากขึ้น ได้กล้องใหม่ ในช่วงปลายปี
– ไม่ค่อยได้ออกกำลังกาย
– กินดื่ม เที่ยวกลางคืน มากเหมือนเดิม
– ใจร้อน เหมือนเดิม จะเอาอะไร ก็จะทำให้ได้
– เริ่มมี idea ที่จะกลับไปทำสวนที่บ้านมากขึ้น
– รายได้จาก SMS ลดลงจากเดิม
– ให้เซียนกอล์ฟทำธุรกิจ Hosting, co-location แทน เต็มตัว

สิ่งที่จะต้องทำในปี 2012
– วางแผนเรื่อง Infrastructure ของระบบที่ดูอยู่ให้ดียิ่งขึ้น
– วางแผนเรื่อง Backup, DR Site ให้สมบูรณ์แบบมากขึ้น
– ลดรายจ่ายต่างๆ ที่ไม่จำเป็นลง ให้ได้
– Backpack เดินทาง ท่องเที่ยว ถ่ายรูป ให้มากขึ้น ทั้งในและนอกประเทศ
– ออกกำลังกาย ให้มากขึ้น
– กินดื่ม ให้น้อยลง รักษาสุขภาพให้มากขึ้น
– ใจเย็น ปล่อยวาง ทุกอย่าง ต้องเป็นไปตามที่มันจะต้องเป็น
– หาธุรกิจ อื่นๆ ทำเป็นรายได้เสริม จากรายได้จาก SMS
– เขียน content ลง Travel-is.com ให้ถี่ขึ้น และปรับปรุงเว็บให้ดีขึ้น
– ซื้อจักรยานมาปั่น ซื้อ Jeep XJ ไว้เดินทางท่องเที่ยว ในวันหยุด
– ทำบ้านที่จันทบุรี ให้เสร็จในปี 2555
– หาแฟน แต่งงาน 🙂

ที่เขียนมาก็เป็น plan ส่วนนึง ที่ผมจะต้องทำให้ได้ ..

Facebook Comments Box

สบายดีหลวงพระบาง ปีใหม่ 2012

ตักบาตรข้าวเหนียว ที่หลวงพระบาง

สวัสดีปีใหม่ ล่วงหน้าครับ ปีนี้ ก็เป็นอีกปีนึง ที่ผมมา countdown ที่หลวงพระบาง
กับเพื่อนพ้องน้องพี่ เมื่อสองปีที่แล้ว ผมก็มาหลวงพระบาง ช่วงปีใหม่เหมือนกันครับ ..
ครั้งนี้นับเป็นการเดินทางที่ตื่นเต้นไม่น้อยครับ เพราะว่ามาเส้นทางใหม่ ที่อนาคต จะเป็น
เส้นทางที่น่าสนใจมากๆ เส้นนึงครับ ผมจะเล่าถึงการเดินทางกันก่อนนะครับ เดี๋ยวเอารูป
มาลงเพิ่มเติมอีกทีครับ ..

ผมเริ่มจากนั่งรถทัวร์ จากหมอชิต มาลงที่เมืองน่าน เดินทางด้วยกัน 6 ชีวิตครับ
ออกเดินทาง 19.30 น. ของวันที่ 27 ธันวาคม 2011 มาถึงน่านก็เช้าๆ แล้ว
ต่อรถบัสส้ม ตอน 06.00 น. มาลงที่ทุ่งช้างครับ แล้วก็เหมารถสองแถวมาลง
ที่ด่านห้วยโกร๋น ระหว่างการเดินทาง ได้พบมิตรภาพ ของผู้คนท้องถิ่นตลอดการเดินทาง
คนน่าน ใจดีและมีน้ำใจมากครับ ผมและคณะการเดินทาง ประทับใจกันมากๆ ครับ ..

จากด่านห้วยโกร๋น เราก็เดินข้ามมาที่ด่านเมืองเงิน ของทาง สปป. ลาว จากนั้นเจอ
พี่คนไทยใจดี ที่มาขี่เสือภูเขาเที่ยวเมืองเงิน แนะนำเรื่องการเหมารถเรา ซึ่งได้ราคาถูกว่า
ราคาเหมาที่ด่านเมืองเงิน เกือบครึ่ง เรานั่งรถตู้ของคุณลุง ที่ใจดีมาก มาลงที่เมืองปากแบ่ง
ในราคาแค่ 1500 บาท ก็คุยตกลงเรื่องราคา เฮือเร็ว (speed boat) จากปากแบ่ง
เพื่อมาหลวงพระบางกัน สรุปได้ที่ราคา 5000 บาท ระยะเวลาที่ใช้เดินทาง ก็ประมาณ
สองชั่วโมงกว่าๆ แต่ว่าตลอดเวลาที่นั่ง ทิวทัศน์ ริมน้ำโขงสองข้างสวยงามมากครับ ผมเอง
ก็เพิ่งเคยเห็นเหมือนกัน และเราได้ตื่นเต้นกันตลอดเส้นทางการเดินทาง ถ้าใครไม่เคยมา
หลวงพระบางเส้นทางนี้ ผมแนะนำเลยครับ รับรองว่าน่าประทับใจแน่นอน ..

เรามาถึงหลวงพระบางกันก็ประมาณเวลา 16.30 น. ของวันที่ 28 ธันวาคม 2011
ที่พักที่เจ๊ตุ้ม จองไว้ผ่านทางเน็ต ก็คือที่ “พะสิด guesthouse” ที่พักอยู่ข้างๆ พระธาตุพูสี
ใกล้ๆ ริมน้ำคาน ที่พักสะอาด ดีมาก และเจ้าของเป็นกันเอง มี WiFi ให้ใช้ สบายๆ ..

หลวงพระบางเป็นเมืองที่สวยงาม สงบ ทุกอย่างลงตัว คนลาวมีน้ำใจ และมีความซื่อสัตย์
ยกเว้นพวกรถราต่างๆ ที่ชอบหาเรื่องเราเปรียบ จะโกงเราตลอดเวลา ตรงนี้ ถ้ามาลาว
ต้องระวังกันให้ดีๆ ครับ อย่าเพิ่งไปตามราคาที่เค้าจะเหมา เพราะมันแพงมาก ให้เดินมา
จากตรงนั้นอีกนิดหน่อย เจอถนน ก็จะเจอ สามล้อ คันอื่นๆ ที่ราคาถูกว่าหลายเท่า ..

ช่วงเวลาตลอด สี่วัน มีกิจกรรมต่างๆ ให้ทำเยอะมาก ที่หลวงพระบาง ช่วงนี้นักท่องเที่ยว
มีจำนวนมาก ไม่ว่าจะเป็น ฝรั่ง ญี่ปุ่น และที่มากที่สุด ก็คือคนไทย มีคนจำนวนไม่น้อย
ที่มาหลวงพระบางแล้วประทับใจ แล้วกลับมาอีก หลายรอบ เรื่องอาหารการกินถ้าเทียบกับ
ที่เมืองไทยของเรา อาหารอาจจะแพงกว่าหน่อย เพราะว่าทุกอย่างต้อง import เข้าจากไทย
แต่โดยรวมแล้ว ถือว่าค่าครองชีพไม่ได้ต่างกันเท่าไร ..

คืนนี้รอ countdown ที่หลวงพระบาง แล้วผมจะมาสรุปเรื่องราวต่างๆ ที่ผ่านมาของผม
และอนาคตในปี 2012 อีกรอบครับ 🙂

Facebook Comments Box

ระบบตรวจสอบระดับน้ำในคลอง และน้ำท่วมถนน

ระบบตรวจสอบน้ำในคลองต่างๆ ของ กทม.
URL : http://ton.packetlove.com/bkkflood.php

ระบบตรวจสอบระดับน้ำบนถนนต่างๆ ของ กทม.
URL : http://ton.packetlove.com/bkkroad.php

เมื่อวานหลังจากที่ผมลองเข้าเว็บของสำนักระบายน้ำ กทม. และหน่วยงานอื่นๆ
ที่เกี่ยวกับน้ำท่วม ทำให้ผมเกิดความไม่สะดวกมาก เพราะเว็บค่อนข้างหนัก
และส่วนใหญ่เป็น Flash ทำให้ไม่สามารถ ใช้พวก mobile device ต่างๆ เข้าถึงได้
เพราะถึงเวลาจริงๆ แล้ว ปัจจุบัน คนส่วนใหญ่ ใช้ mobile device ในการเข้าถึงข้อมูล
กันมากกว่าใช้ PC เสียอีก เพราะสะดวก และสามารถทำได้ทุกที่ ลักษณะการใช้งาน
ส่วนใหญ่ ต้องการข้อมูลที่ดูแล้วเข้าใจง่าย เข้าถึงได้เร็ว รู้ว่าตรงไหนจะท่วมหรือไม่
แค่นั้นเอง จะได้เตรียมตัวถูก ..

ตอนแรกผมคิดว่าจะทำเป็น app ไปแจกใน App Store แต่ว่ามันจะเป็นเรื่องใหญ่ไป
และกว่าจะได้  approve คงไม่ทันได้ช่วยเหลืออะไรทันแน่ๆ ก็เลยเขียนเป็น web เอา
และให้ทำงานได้ ในทุก device ไม่ว่าจะเป็น PC/mobile หรืออะไรต่างๆ ที่มี browser
ที่รองรับ HTML แบบพื้นฐานได้ และมีแต่ข้อมูลที่จำเป็นจริงๆ เท่านั้นก็น่าจะพอ ..

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

สิ่งนึงที่ผมหวังว่าทางหน่วยงานของรัฐคงจะนำบทเรียนครั้งนี้ไปคิดดูให้ดี ในการจัดการ
กับระบบเตือนภัยต่างๆ ของประเทศ ไม่ว่าจะเป็นระบบ เตือนน้ำท่วม เตือนสภาพอากาศ
เตือนซึนามิ เตือนระบบจราจร และอื่นๆ ให้ดีขึ้นกว่านี้ และควรจะมี APIs ที่เป็นมาตรฐาน
เพื่อที่จะให้หน่วยงานเอกชน บุคคล หรือคนที่มีกำลังมีความสามารถ ได้นำเอา ข้อมูลที่
จำเป็นเหล่านี้ ไปใช้ให้เกิดประโยชน์ ต่อส่วนรวมได้ ต่อไปอาจจะมี app ดีๆ ต่างๆ มากมาย
ตรงนี้ ผมก็เพียงแต่คิดว่า มันจะมี แต่ก็ไปหวังอะไรไม่ได้มากนัก ..

สุดท้ายผมหวังว่า เราชาวไทย จะผ่านเหตุการณ์นี้ไปได้ด้วยดีครับ 🙂

Facebook Comments Box

Why Varnish Cache

User <-------> Varnish <-------> Web Server <--------> DB

วันนี้ ผมมีโอกาสมาพูดถึง เจ้า Varnish อีกครั้ง ว่าทำไม มันถึงน่าสนใจ มันมีอะไรดี
แล้วมันช่วยอะไรกับระบบเว็บขนาดใหญ่ ที่มีคนเข้าจำนวนมากได้ ..
โดยเฉพาะถ้าเว็บคุณเป็น content พวก static ยิ่งดีเลย เพราะว่า varnish สามารถ
caching ตรงส่วนนี้ได้หมด บน memory ทำให้ เครื่อง web server และ DB เอง
แทบไม่ต้องทำงานอะไรเลย แต่ถ้าเป็นพวก dynamic ตัว varnish เอง ก็ช่วยได้เหมือนกัน
มาดูรายละเอียดกันครับ ว่าทำไมต้อง varnish ??

– เพราะเป็น Open Source ที่มีคุณภาพ ทำไมต้องไปใช้ BlueCoat ที่มีราคาแพงด้วย
ทั้งๆ ที่ Varnish ดีกว่ามากๆๆๆๆๆๆๆๆๆ ถ้าคุณใช้มันเป็น 🙂

– Varnish Configuration Language (VCL) ซึ่งเป็นการเขียน config แบบเข้าใจได้ง่าย
เป็นโครงสร้างที่คล้ายๆ ภาษา C ทำให้เราสามารถ เขียน VCL ให้ทำงานต่างๆ ได้ละเอียด
ตามที่เราต้องการ และใช้การ compile เพียงครั้งเดียว ทำให้ การทำงานทำได้อย่างดี เร็ว
และมีประสิทธิภาพมากๆ

– Varnish เก็บ cache ต่างๆ บน memory ด้วยโครงสร้างที่ดี ทำให้ lookup ได้เร็วมาก
เวลาต้องการเรียกใช้งาน cache ที่ต้องการ โดยแทบจะไม่ทำให้ เครื่อง เกิด i/o load เลย

– Varnish สามารถทำเป็น Load Balance ได้

– Purge URL ที่ต้องการไม่ให้ cache ได้ โดยใช้คำสั่งเข้าใจง่ายๆ สามารถใช้ PHP
เขียนติดต่อ ที่ T port เพื่อทำการ purge URL ทำให้เว็บ มีประสิทธิภาพมาก เพราะว่า
ในกรณีนี้ เราจะสามารถ เขียน VCL ให้ cache URL ทั้งหมด ของระบบได้ ทำให้
Web Server และ DB Server แทบไม่ต้องทำงานเลย แต่ถ้าเวลามีการ update ต่างๆ
เราก็สามารถส่ง URL ที่ต้องการ มา purge ได้ 🙂

ที่เล่ามาก็เป็นส่วนหนึ่งที่ทำไมผมคิดว่า Varnish เหมาะที่จะมาช่วยทำให้ระบบเว็บขนาดใหญ่
สามารถทำงานได้ดีขึ้น มีประสิทธิภาพสูงขึ้น และประหยัดค่าใช้จ่ายในการซื้อ Software
และ Hardware ที่ไม่จำเป็น เป็นการช่วยลดโลกร้อน ที่เป็นปัญหาให้เกิดน้ำท่วมได้ 🙂

Facebook Comments Box

PHP Purge Script for Varnish 3.xx

สวัสดีครับ วันนี้ พอดีผม modify ตัว Purge URL ที่เป็น PHP Script สำหรับ
Varnish 3.xx มาใช้งาน ก็เลยเอามาแบ่งปันกันครับ สำหรับการใช้งานก็คือ
ส่ง Parameter มาแบบนี้ครับ ..
vpurge.php?url=/xxx.html&host=test.com

vpurge.php


# get param
$url = $_GET["url"];
$host = $_GET["host"];

  # Varnish 3.xx IP
  $ip = "127.0.0.1";
  # T port
  $port = "6082";

  $timeout = 1;
  $verbose = 1;

  # inits
  $sock = fsockopen ($ip,$port,$errno, $errstr,$timeout);
  if (!$sock) { echo "connections failed $errno $errstr"; exit; }

  if ( !($url || $host) ) { echo "No params"; exit; }

  stream_set_timeout($sock,$timeout);

  #$pcommand = "purge";
  # Send command
  #$pcommand .= ".hash $url#$host#";

  ### PHP Purge for Varnish 3.xx      ###
  ### Modify by: Ton 2011-09-05       ###
  ### http://ton.packetlove.com/blog/ ###
  $pcommand = "ban";
  $pcommand .= " req.http.host == $host && req.url ~ ^$url.*$";

  put ($pcommand);
  put ("quit");

  fclose ($sock);

  function readit() {
    global $sock,$verbose;
    if (!$verbose) { return; }
    while ($sockstr = fgets($sock,1024)) {
      $str .= "rcv: " . $sockstr . "
"; } if ($verbose) { echo "$str\n"; } } function put($str) { global $sock,$verbose; fwrite ($sock, $str . "\r\n"); if ($verbose) { echo "send: $str
\n"; } readit(); }

ง่ายๆ เพียงเท่านี้ แค่เราส่ง parameter มาก็ทำการ purge URL ที่ต้องการได้แล้วครับ 🙂

Facebook Comments Box