[Hard core] How to get TOKEN out side Joomla 1.5 - จะเอาค่า token จากข้างนอกจุมล่ายังไง?

ออกตัวก่อนเลยว่า นี่ไม่ใช่การ Hack นะครับ
แต่บางทีเราต้องการเขียนระบบอะไรสักอย่างที่อยู่ข้างนอกจุมล่า แต่ดั้นนนนน ต้องคืนค่ากลับไปให้จุมล่าทำงานต่อ

อย่างเช่น
เขียนฟอร์มจากทาง CI(CodeIgniter) ให้มันทำงานกับจุมล่า(ส่งเข้า Controller)

** ตรงนี้ถ้าใครงงว่า "ส่งเข้า Controller แล้วมันเกี่ยวกับ Token ยังไงวะ?" คือ token เอง อย่างน้อยๆ ก็เป็นตัวสกรีนในระดับหนึ่งแล้วว่า user นั้นกำลังถูกใช้งานในเบราเซอร์จริงๆ อะไรประมาณนั้น

สเต็ปง่ายมั๊กๆ เลยฮะ
  1. หา #__session ที่กำลังใช้งาน ตรงนี้ถ้า user login อยู่แล้วก็เอา userid ไปหาได้เลยไม่ยุ่งยากอะไร โดยที่มันจะอยู่ในฟิลด์ที่ชื่อว่า data นั่นเอง
    พอ query ได้มาแล้วก็ตัด __default| ออกซะ จากนั้นก็ทำการ unserialize ต่อไปให้หา Array ที่ชื่อว่า session.token แค่นี้ล่ะจ้า
  2. เอา secret จากใน configuration ออกมา
  3. เอา id ของ user คนดังกล่าวออกมา
  4. จับเอาค่าทั้งสามตัวมารวมร่างเรียงกัน ผ่าน md5 ดังนี้
    md5(CONFIG_SECRET.USER_ID.SESSION_TOKEN);
แค่นี้ล่ะ เราก็จะได้ token ไว้ใช้งานใน CI แบ๊วววว 


แถมท้าย
ถ้าเราไม่มี user id จากทาง CI เราจะทำยังไงดี?
คำตอบก็คือ หาจากใน COOKIE เลยครับ คือใน Value ของ COOKIE มันจะมีค่าของ session_id ที่อยู่ใน #__session อยู่นั่นเอง


แถมท้ายฝุดๆ
บางครั้งเราจะเจอปัญหา อยาก include class สักตัวหนึ่ง ที่มันไม่ได้ Extends อะไรมาเลยแต่มันติด
defined('JPATH_BASE') or die();

ณ จุดนี้ เราก็หลอกๆ มันได้อยู่นะ เช่น

@define(JPATH_BASE, '1');
require_once FCPATH.'../libraries/joomla/crypt/crypt.php';

เอามาใช้ได้แหล่ววว

Comments