ข้ามไปที่เนื้อหาหลัก

CI และ CKEditor ปัญหาการทำ Global XSS Filtering

ช่วงหลังๆ ผมหันมาลองใช้ Codeigniter ในการพัฒนางานแอพลิชันบนเว็บไซต์ โดยมีงานระบบในการเพิ่มข้อมูลข่าวสาร บทความ ซึ่งจะต้องมีตัว editor ในการจัดการข้อความ เพิ่มรูปภาพลงใน content ที่เราต้องการได้อย่างสะดวกสบาย ผมก็เลือกใช้ CKEditor สำหรับจัดการในส่วนนี้ แต่ดั๊นเกิดปัญหา ซะได้ พอลองอัพพวกรูปภาพลงไป แล้วส่งค่าผ่านตัวแปร $_POST ปรากฎว่าค่าที่จัดเก็บลงฐานข้อมูลเพี้ยนหมดเลย และยิ่งทำก็ยิ่งเพี้ยนนนน ไปกว่าเดิม

// input


// output


หาอยู่นานกว่าจะพบว่า สาเหตุมาจาก ตัว Global XSS Filtering ที่เป็น config สำหรับจัดการข้อมูลที่จะเป็นช่วงโหว่ของระบบตัดข้อมูลเหล่านั้นทิ้งไป ทำให้ Tag <img> ในส่วนของ style หายไป

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

การเพิ่ม Font ภาษาไทยอื่นๆ เข้าไปใช้งานใน MPDF

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

แก้ไขปัญหา Laravel+Vite redirect ไปที่ path build

  ก่อนหน้านี้ติดปัญหาเรื่องการพัฒนาเว็บแอพลิเคชันด้วย Laravel และ Vuejs โดยใช้ Vite ควบคู่ในการพัฒนา Frontend ตอนรัน npm run dev ก็ดูเหมือนจะใช้งานได้ปกติ แต่พอมาลอง build ดูปรากฏว่าตัว application คอย redirect ไปที่ path /build ตลอดเลย พอหาข้อมูล ไปๆ มาๆ ก็เจอว่าตอนที่เขียนเราใช้ router ของฝั่ง vuejs ซึ่งทำเป็น SPA const router = createRouter({     history: createWebHistory(import.meta.env.BASE_URL), }); จากโค๊ดด้านบนนี่แหละที่ มึนอยู่หลาย ชั่วโมง แก้ง่ายๆ ที่สุด คือทำแบบนี้ const router = createRouter({     history: createWebHistory(), }); เข้าใจว่า import.meta.env.BASE_URL ค่า default น่าจะเป็น /build ถ้าเอาออกจะช่วยแก้ไขปัญหาได้ แต่ยังไม่ได้ลองว่าถ้าเราไปกำหนด env ตัวนี้ขึ้นมาก็อาจจะช่วยแก้ไขปัญหาได้ด้วยหรือเปล่า? VITE_BASE_URL="/" ใครลองแล้วได้ผลมาคอมเม้นกันด้วยนะ วันนี้ไปก่อนละ

การเขียน Force download ด้วย PHP

การทำ Force download ด้วย PHP นั้น ไม่ไช่เรื่องใหม่อะไร มีการเขียนโค้ดด้วยลักษณะนี้อยู่บ่อยๆ แต่ผมต้องนำมาแปะเป็นทริคเล็กน้อยกันตัวเองลืมครับ ประโยชน์ของมันคือในกรณีที่เราไม่สามารถเข้าไปจัดการ Apache config ได้เราสามารถใช้วิธีนี้แทนได้