Jan 29

FireFox Add-ons Web Developer ส่วนของ Cookies
URL : http://chrispederick.com/work/web-developer/
วันนี้ผมจะมาพูดถึงเรื่องของ Web Security อีกตอนนึงนะครับ (ช่วงนี้ขยัน)
ในปัจจุบันการจะจำข้อมูลของผู้ใช้งานเช่นการ login จะนิยมใช้กันอยู่
3 แบบก็คือแบบใช้ Session แบบใช้ Cookie และแบบใช้ทั้ง 2 อย่างร่วมกัน
ผมจะไม่อธิบายถึงรายละเอียด ว่าแต่ละอย่างทำงานยังไง เพราะคิดว่า
ทุกท่านน่าจะรู้อยู่แล้ว แต่ผมจะพูดถึงข้อดี ข้อเสีย และจุดอ่อน ของแต่ละแบบ
ว่ามีอะไรบ้าง แล้ววิธีทดสอบ วิธีแก้ไข ต้องทำอย่างไร ..
1.แบบใช้ Session จะมีข้อดีคือข้อมูลทุกอย่างจะเก็บไว้ที่ฝั่ง server ทำให้
hacker ไม่สามารถเปลี่ยนแปลงข้อมูล ใน session ที่เก็บไว้ได้ แต่ก็ยัง
ไม่ปลอดภัยนัก ทางที่ดีควรเข้ารหัสค่าต่างๆ ใน session ด้วย
ข้อเสียก็คือ ถ้ามี server หลายๆ เครื่องทำ load balance กัน จะไม่สามารถ
เก็บ session ไว้ที่เครื่องใดเครื่องนึงได้ ต้องทำการสร้าง session server
ขึ้นมาเฉพาะ เครื่องนึง ส่วนวิธีการสร้าง session server ผมจะมาเขียนอีกที
2.แบบใช้ Cookie ข้อมูลทุกอย่างจะเก็บอยู่ที่ฝั่ง client ซึ่ง hacker สามารถ
ที่จะเปลี่ยนค่าต่างๆ ใน cookie ได้โดยวิธีการต่างๆ จากที่ผมยกตัวอย่างมา
ก็คือการใช้ add-ons Web Developer บน FireFox เป็นตัวช่วย add-ons
ตัวนี้มีความสามารถมาก โปรแกรมเมอร์ ควรมีไว้ช่วยทดสอบเวลาเขียนโปรแกรม
จากที่กล่าวมา การจะใช้ cookie นั้น ควรมีการเข้ารหัส เพื่อความปลอดภัย
เพื่อให้ hacker ไม่สามารถเดา และแก้ไขค่าต่างๆ ใน cookie ได้ โดยเฉพาะ
เรื่องการ login ที่เก็บค่า user-password ไว้ใน cookie ต้องระวังมากเป็นพิเศษ
ข้อดีของ cookie ก็คือ ง่ายสะดวก และไม่มีปัญหา ในกรณีมี server หลายเครื่อง
3.ใช้ Session+Cookie เป็นวิธีที่ใช้ผสมผสานกัน ส่วนที่สำคัญมากๆ จะเก็บเป็น
session ส่วนที่ไม่มีผลอะไรมากมาย จะเก็บลง cookie วิธีนี้จะทำให้ได้ประสิทธิภาพ
มากขึ้นและปลอดภัยมากขึ้น แต่อย่างไรก็ตาม การเข้ารหัสข้อมูลใน session และ
cookie เป็นสิ่งที่สำคัญต่อความปลอดภัยเป็นอย่างยิ่ง จะปล่อยปละละเลยไม่ได้ ..
เรื่องที่ผมพูดถึงเป็นเรื่องที่สำคัญมากที่โปรแกรมเมอร์มักหลุดบ่อยๆ ทำให้ hacker
สามารถเข้าถึงสิ่งที่ต้องการได้ง่ายดาย เพียงอาศัยช่องโหว่ ตรงนี้ ..
ปล.สำหรับตอนต่อไป อย่าลืมติดตามอ่านกันนะครับ รับรองว่าได้รับสาระความรู้
เกี่ยวกับเรื่อง Web Security กันแบบเนื้อๆ แน่นอนครับ ไม่มีกั๊ก
Tagged with: authen • cookie • firefox add-ons • login • session • web developer • Web Security
Jan 27

http://zone-h.org ยังเคยโดน hack แล้วจะเอาอะไรกับเว็บไทย
สวัสดีครับ ช่วงนี้ผมเองวุ่นๆ มาก งานเข้ามากมาย ก็ต้องค่อยๆ แกป้ญหากันไปครับ ..
“ยิ่งเจอปัญหายากๆ ย่ิงสนุก จะทำให้เรากล้าแกร่ง และมีประสบการณ์ ขอบคุณปัญหา“
วันนี้มีเรื่อง web security มาพูดกันสักนิดนึงครับ 98% ของการ hack web ในปัจจุบัน
มาจากความผิดพลาดของ web application หรือพูดกันแบบบ้านๆ ก็คือ program
ที่เขียนมีจุดอ่อน ทำให้ hacker สามารถใช้ช่องโหว่เข้ามาโจมตีและลักลอบขโมยข้อมูล
ไปได้ ไม่ว่าจะเป็นวิธี injection, cross site script ที่หนักสุดก็คือ upload php shell ..
Injection คือการใช้จุดอ่อนในการเขียน sql เข้ามากระทำต่างๆ กับ database
Cross site script คือการส่ง parameter ต่างๆ ที่สามารถทำงานที่ต้องการผ่าน script
PHP Shell คือ file php เพียง 1 file ที่ upload ขึ้นไปแล้วสามารถทำอะไรก็ได้บน server
สำหรับผมเองจะ stick กับเรื่องพวกนี้มาก เพราะว่าถ้าปล่อยให้หลุดไป ปัญหามันแก้กัน
ลำบาก ไม่รู้ว่ามีคนแอบเอา PHP Shell ไปวางไว้ตรงไหนบ้าง อะไรแบบนี้ file บน server
มีเป็นจำนวนมาก ไล่หาคงไม่เจอแน่ๆ ซึ่งถ้าโดนเข้าไปแล้ว ต่อให้ลง server ใหม่ก็ไม่หาย
เว็บไทย ส่วนใหญ่ไม่ค่อยสนใจเรื่องพวกนี้ ทำให้เว็บใหญ่ๆ ดังๆ หลายที่มีข่าวว่าโดน hack ..
สำหรับท่านที่เป็นโปรแกรมเมอร์ ผมมีวิธีแนะนำในการตรวจสอบและป้องกันง่ายๆ ก่อนที่จะ
upload file ขึ้น server ให้ test ต่างๆ ประมาณนี้ ก็จะทำให้มั่นใจว่าปลอดภัยระดับหนึ่ง ..
1.กรองการส่งค่าแบบ GET เข้ามาทาง URL และอย่าลืมทำการ addslashes() ค่าที่รับมา
ก่อนทุกครั้ง เพื่อป้องการการ injection และการ cross site script
2.อันนี้สำคัญมากคือพวกโปรแกรมที่ปล่อยให้ upload file ขึ้นมาบน server ได้ เท่าที่พบ
บ่อยที่สุด ก็คือพวกประกวดรูปภาพ แล้วให้คนมาโหวต ผมยังไม่เห็นเว็บไหนที่โกงไม่ได้
เพราะว่าพวกที่จะ hack ก็จ้องอยู่แล้วว่าเมื่อไรจะมี event พวกนี้ จะได้ส่งไปโหวตบ้างได้ของ
วิธีการปั่นโหวต ก็มีสารพัดวิธี แล้วแต่ใครถนัด แต่ก็ยังมีอีกพวก ที่ไม่ชอบปั่นแต่ hard core
คือ hack เข้าไปที่เว็บนั้นๆ เลย วิธีการก็โดยการพยายาม upload PHP Shell ขึ้นไป
ในเมื่อเว็บมีที่ให้ upload อยู่แล้ว การจะ upfile ขึ้นไป ก็ไม่ใช่เรื่องยากเท่าไรนัก ในมุมมอง
ของโปรแกรมเมอร์ อาจจะคิดว่าทำทุกอย่าง กันทุกอย่างแล้ว จะ upload เข้ามาได้อย่างไร
แต่อย่าลืมว่า hacker คือคนที่รู้และมีประสบการณ์ เรื่องพวกนี้ดีกว่า จุดอ่อนและวิธีการ
มีสารพัดวิธี แล้วแต่ใครถนัด ขนาดใช้ MySQL upload file ยังสามารถทำได้เลย ..
ที่จะแนะนำก็คือ ให้เชคให้ละเอียดว่า file ที่ให้ upload เป็น images ที่ไม่เป็นอันตราย
ไม่ใช่ check แค่ extensions หรือใช้ $_FILES เพราะว่าพวกนี้ปลอม header เข้ามาได้
ให้ใช้ getimagesize() แทนจะแน่นอนกว่า สำหรับตัวอย่างสามารถหาดูได้ที่
URL : http://php.net/manual/en/function.getimagesize.php
ปล.วันนี้มาเขียนแค่นี้ก่อนครับ วันหลังเดี๋ยวมาเขียนต่อ รอติดตามกันนะครับ
Tagged with: cross site script • hack • hack web • Hacker • injection • php shell • Web Security • ปั่นโหวต