21 February 2012 21-2-2555 17-14-35 Campaign Online อาจเป็นอันตรายต่อ บริษัทคุณ ถ้าขาดประสบการณ์ (Case Study)

วันนี้ผมขออนุญาต เผยแพร่ บทความเกี่ยวกับ การทำ Campaign Online ของคลื่นวิทยุแห่งนึง ซึ่งแคมเปญนี้ยังรันอยู่นะครับ ผมไม่รู้ว่า Agency บริษัทไหนทำให้ แต่ผมบอกได้คำเดียวก็คือ ขาดประสบการณ์อย่างแรง

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

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

เอาล่ะ มาเริ่มกัน

มีน้องที่ออฟฟิต ของผม ชวนเข้าเล่น Campaign Online  ของทาง Cool 93 Fahrenheit น่าสนใจมากครับชนะได้ไปเมาดีฟ ทั้งทีม 10 คน

กิจกรรม คือรวมเพื่อน 10 คนแข่งเล่นเกมส์ ใน ที่พัฒนาขึ้นสำหรับแคมเปญนี้ แล้ว เอาคะแนนรวมกันมาแข่งกันครับ

กติกาเขียนไว้ชัดเจน ครับผมต้องชม copy writer ว่าโกงจะอดไป

แต่ทว่า ปัญหาที่แท้จริงเวลาทำแคมเปญพวกนี้ ก็ควรจะรอบครอบตั้งแต่ เขียน code ด้วยครับ

ไม่ใช่ให้เด็กฝึกงานทำ …. งานนี้ผมขอเรียกว่าฝีมือเด็กฝึกงานนะครับ เด็กฝึกงานยังไง อ่านต่อไปครับจะค่อยๆ อธิบาย

(ในวงการ พัฒนาเว็บไซต์ เวลาทำอะไรผิดไป มุขเดิมๆ ที่ เจ้าของเว็บไซต์ใหญ่ๆ ใช้แก้ตัว เสมอๆ ก็คือ เด็กฝึกงานทำ!)

 

หลังจากสมัคร เรียบร้อยก็ Login เข้าเกมส์เลยครับอยากเล่นแล้ว

เวลาเค้า request อะไร ที่ facebook หัดอ่านบ้างนะครับ (กดเพื่อดูภาพใหญ่)

อย่างแรกที่ผมเห็น ก็คือ ไอ้แคมเปญนี้ ขออนุญาต spam ซะ เต็มตรีน ครับ Post to Facebook as me คือ การขออนุญาต สิทธิ นั้นเค้าจะโพสอะไรโดยระบบ ตอนที่คุณไม่ออนไลน์มันก็โพสเฉย – -” สิ่งที่โพสได้ก็ คือ รูปภาพ, ข้อความ,notes, แม้กระทั้ง video – -” ( แม้ถ้าผมขอ token นี้จบไปแล้ว หลังจบแคมเปญ ผม hack ไป post รูปโป้เล่นก็ได้)

เอาครับอยากเล่นก็ต้องเปิดสิทธิไม่ต้องบ่นมาก กดเข้าเกมส์มาครับ

ต้องใช้ username กับ password ที่สมัครไว้ใน website ก่อนนะครับถึงจะเล่นได้ จะว่าไปตรงนี้ ทำ Campaign ออกมาโดยไม่ได้ test หรืออ่าน Facebook App Policy เลยรึ มันผิดกฏเต็มๆ เลย

 

 

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

รายละเอียดการส่ง/รับข้อมูล

อธิบายตามเวลานะครับ บน ลงล่าง

ก็คือ

1. ส่งไป ถามว่า password ถูกไหม อันนี้ปกติ แต่เรื่องแรกที่ไม่ปลอดภัยก็คือ ไม่ encrypt เลย แมร่งโพสไปตรงๆ

ส่งไปไม่ซ้อนเลยนะ / ไม่เป็นไรไม่ว่ากัน ถือว่ารีบละกัน

ค่าตอบกลับจากการ login ถ้าถูกต้อง

ก็ได้รู้แล้วว่าผมมีทีมนะเว้ย user_id ของระบบของ และ email อะไรพวกนี้ ก็ปกติ

2. เรียกข้อมูลส่วนตัว ผ่าน GET จากระบบตรงนี้เริ่มมีส่วนที่ไม่ปลอดภัยครับ

เรียกตรงซะ เห็นแล้วปวดตับ ดับตุ๊บๆ ผมเห็น url นี้ผมสามารถ ดึง email ของทุกคนในระบบของ cool93 ได้เลยนะ

วิธีดึง อะง่ายนิดเดียวผมไม่เขียนบอกว่าทำยังไง มันผิดกฏหมาย!
ลองทำอะไรเล่นๆ ดึง ฐานข้อมูลลูกค้า ของ cool93 fm ออกมาครบทุกคนเลย มีตั้ง หลายหมื่นคนแหนะ! เพราะความ มักง่าย ของเด็กฝึกงาน นี่เอง

ไปต่อครับ

3 .มาถึงวิธีสวดยอดของวิธีตรวจความปลอยภัยของแคมเปญนี้ ว่าคนเล่นจริงๆ ไม่ได้โกงนะจ๊ะก็แค่ http POST ค่าของ team_id และ user_id ไป record ลงระบบ ว่า กูเริ่ม มาเล่นแล้วนะเว้ย !

ส่งไปcheck ละ

 

ตอบกลับมา ว่า เคยเล่น ด่านไหนไปแล้วบ้าง แค่นั้น คงไม่รู้จะ response อะไร ละซิ 55 // ตรงนี้ผมว่าเด็กฝึกงานมันบ้า ฮะ ก่อนหน้านี้มรึง chk_user ก็ได้ค่านี้มาแล้ว มรึงยัง return ค่ามาซ้ำๆอีก แสรด รู้ไหมว่า package แต่ละ byte ที่วิ่งบน มันมีค่าแค่ไหน เด็กฝึกงงานคนนี้ทำให้โลกร้อนนะเนี่ย 555 สิ้นเปลืองโดยใช่เหตุ

 

4.หลังจากเล่นเกมส์ไป มันก็แค่เกมส์เครื่องบิน ยิงๆ ไล่เก็บ ผม ดัก package ทุกกระบวนการ ไม่มีการส่งค่า real-time ไปให้ server ….(แล้วจะตรวจสอบได้ไงว้าว่าคนนี้เล่นเกมส์จริงไม่ได้ – -”)

5.เอาละ เมื่อเป้าหมาของผมมาถึงผมก็อยากรู้จริงๆ ไอ้เกมส์ โดยเด็กฝึกงานเนี่ย มันทำการเข้ารหัสดีแค่ไหน เพื่อส่งคะแนนไปบอก server ว่า คนนี้ เล่นจบแล้วยืนยันคะแนนด้วย พอผมเห็นถึงกับอึ่ง!

 

เมื่อกด submit แล้ว ก็จะเห็นว่า client post ไปที่ url นึงบอกไม่ได้นะจ๊ะ ไปดักกันเอาเอง

 

สิ่งที่ client นี่โพสไป ก็คือ คะแนน ดิบๆ เลยหวะ - -" //server ก็ตอบอย่างง่ายได้ว่า HTTP 200 แปลว่า OK นะคะ!

 

เมื่้อผมเห็นตรงนี้แล้ว ก็ทำ from post ง่ายๆ ส่งค่าที่ต้องการไป ก็ได้หมด – -” แล้วเกมส์นี้จะปลอดภัยได้อย่างไร แคมเปญนี้จะปลอดภัยได้อย่างไร

 

โกงแม่งทุกทีม

และตกใจยิ่งกว่านั้น ก็คือ หน้ารวมคะแนน  คะแนนบ้าอะไร 49 ล้านเป็นที่ 1  ตรงนี้ผมเรียกว่าขาดประสบการณ์จริงๆ นะครับ สำหรับทำเกมส์ พวกนี้ ควรจะต้องคำนวณ Maximum score หรือ Possible Score ที่เป็นไปได้ที่มนุษย์ จะเล่นเกมส์ เกมส์นึง  - -”

สรุป แคมเปญนี้เป็นแคมเปญน่าสนใจครับ แต่ทุกอย่างกลับมาพลาด ตรงที่ทำระบบเกมส์โดยเด็กฝึกงาน

สิ่งที่ cool93  กำลังจะเสี่ยงก็คือ

  1. ระบบไม่มีทางตรวจสอบได้เลยว่า คนไหนโกงหรือไม่โกง  -> หรือว่าคนที่อ้างว่าตรวจสอบได้  ผมบอกได้เลยว่าแมร่ง มั่ว! ชัดๆ
  2. cool93 เสียฐานข้อมูลลูกค้า จำนวนมากกก -> ถ้าผมเป็นบริษัทคู่แข่ง ผมจะรีบดูด Email ของลูกค้าไปทั้งหมด เก็บไว้ทำอะไรได้มากกมาย
  3. เมื่อแคมเปญ นี้มีการโกง …. -> ก็จะมีคนที่ตั้งใจเล่นมากมายออกมาโวยวาย
  4. เมื่อมีคนออกมาโวยวาย -> แคมเปญก็จะต้อง ปิดตัวลงหรือเลื่อนไปโดยไม่มีกำหนด
  5.  เตรียมหาคำตอบไปบอก sponsor ได้เลยนะจ๊ะ ว่า mechanic ที่เสนอ ไว้ซะดิบดี ต้องแก้ –> ตรงนี้ อาจทำให้ขำไม่ออก
  6.  cool93 เสียภาพลักษณ์ ไปเต็มๆ
  7. ต่อไปจะจัดแคมเปญอะไรออกมาอีก ก็ยากส์นิด ที่ Sponsor จะให้เงินหรือของมาใส่เป็นรางวัล
ปล. คนไทยขี้โกงนะครับ…ผมก็คนนึง ที่เขียนบทความนี้ก็อยากจะให้รอบครอบสักนิด ในการ ทำแคมเปญ ออนไลน์ มูลค่าสูงอย่างนี้
ปฮ. วันหลังก็ใช้บริษัทที่ปรึกษาเรื่องนี้ ดีๆ หน่อย จะได้ไม่เกิดเหตุการณ์เช่นนี้อีก …..คร๊าบบบ เจ้าาาาาาาาานายยยยยยยยยยย
ปz. ถ้ายังไม่มีการอัพเดท ผมจะออกมาแฉเรื่อยๆ ว่า เกมส์ทำงานยังไง ส่งคะแนนแบบไหน จนกว่าจะแก้แล้วผมแกะไม่ได้ วันนั้นแสดงว่าแคมเปญนี้ปลอดภัย

ข้อแนะนำ… ควรจ้างมืออาชีพในการทำ app นะฮะ.. ติดต่อได้ :p

 

 

เรื่องที่เกี่ยวข้อง :

Tags: , , , , , , , , , ,
  • http://www.facebook.com/nakarin360 Nakarin Ptm

    ชอบประโยคสุดท้ายนี่ละนะฮ๊าฟฟฟ 555

    • http://www.voicetv.co.th/ KillerNay

      แซวขำๆฮะ ^ ^

  • Snnop2ss

    ของคุณเนย์นี่ทีมไหนหรอครับ  ใช่ทีมที่ 1 เปล่าครับ

    • http://www.voicetv.co.th/ KillerNay

      1-10 ไม่ใช่ ทีมผมครับ 

  • nonceal

    ข้อ 1. ส่งไป ถามว่า password ถูกไหม อันนี้ปกติ แต่เรื่องแรกที่ไม่ปลอดภัยก็คือ ไม่ encrypt เลย
    อยากทราบครับ ว่าปกติใช้วิธีไหนเหรอครับ ถ้าให้เดา ก็คงต้องทำตั้งแต่ตอน javascript? 
    ลอง google ก็ไม่มีเจอ = =”

    • http://www.voicetv.co.th/ KillerNay

      ส่งได้ครับแต่แนะนำให้ตรง password เพิ่มกับ token ไปด้วยจะดีกว่า

      • nonceal

        token เอาไปใช้ตอนไหน ยังไงครับ

        แล้วถ้า ส่ง password ไปแบบตรงๆ ไม่ encrypt ถ้ามีคนดักข้อมูลได้ เขาก็ได้ password ไปอยู่ดีนิครับ?

        • http://www.voicetv.co.th/ KillerNay

          ถ้าเจอ sniffer  คงทำอะไรไม่ได้นอกจากใช้ SSL แล้วล่ะครับ

      • nonceal

        ก็ยังงง อยู่นะครับ ว่าใช้วิธีไหน ทำ encrypt?

        • http://www.voicetv.co.th/ KillerNay

          ลองอ่านเรื่อง  anti forgery token

          หรือลองอ่านนี่ http://www.okvee.net/articles/secured-form-and-prevent-csrf-xss/

          • nonceal

            ตามที่ผมเข้าใจการทำ encrypt จะมีประโยชน์เพื่อนำไปป้องกันการดักข้อมูลนะครับ

            แต่ถ้าทำ token ผมว่ามันเป็นคนละเรื่องนะครับ?

            ผมลองไปดูการ login ของ google เองก็จะไม่เห็น password ตอน submit แต่ไม่แน่ใจว่า ใช้วิธีไหนนะครับ

    • Joinstick Net

      ใน ฐานข้อมูลจะ Hash ไว้ครับ

      ก่อนส่งข้อมูลไปก็เอา Password ไป Hash ส่งแล้วก็เอา Hash ทั้งสองตรวจกันว่าเหมือนกันหรือเปล่าแบบนี้ Password ก็จะไม่รั่วไหลครับ

      • nonceal

        ถ้าส่ง hash ไป เขาก็ใช้ได้เลยซิครับ ไม่ต่างจากเราส่งไปตรงๆ
         หรือผมเข้าใจอะไรผิด?

  • Moonoi_bkk

    ชอบตรงที่บอกว่าโกงแมร่งทุกทีม ตรงอันดับ1-10 อุตสาห์โกง 3 ล้าน แต่ดันเจอพวกที่โกงมากกว่า 5 5 5

    • http://www.voicetv.co.th/ KillerNay

      ฮาๆ 

  • Plammy74

    เขียน comment ตรงมากกกกกคะ
    ขอบคุณมากคะที่มาแชร์ :)

    แต่แรงไปนิดส์อะคะ

    • http://www.voicetv.co.th/ KillerNay

      คนไทยชอบแรงๆ ครับ ^ ^