เมื่อเว็บผมโดนแทรกสคริปต์แปลกปลอม
<span class="__cf_email__" data-cfemail="a2c3c6cfcbcce2c5cdd0c3c5cdc68cc1cdcf">[email protected]</span>
<script data-cfhash='f9e31' type="text/javascript">
/* <![CDATA[ */ ! function(t, e, r, n, c, a, p) {
try {
t = document.currentScript || function() {
for (t = document.getElementsByTagName('script'), e = t.length; e--;)
if (t[e].getAttribute('data-cfhash')) return t[e]
}();
if (t && (c = t.previousSibling)) {
p = t.parentNode;
if (a = c.getAttribute('data-cfemail')) {
for (e = '', r = '0x' + a.substr(0, 2) | 0, n = 2; a.length - n; n += 2) e += '%' + ('0' + ('0x' + a.substr(n, 2) ^ r).toString(16)).slice(-2);
p.replaceChild(document.createTextNode(decodeURIComponent(e)), c)
}
p.removeChild(t)
}
} catch (u) {}
}() /* ]]> */
</script>
ผลการตรวจสอบ
- โค้ด HTML ที่เป็นส่วนของ Template ทั้งหมดไม่พบความผิดปกติใดๆ
- โค้ด PHP ทั้งหมดไม่มีไฟล์แปลกปลอม
- โค้ด Javascript ทั้งหมด ไม่พบความผิดปกติใดๆ
- จากการแสกนไฟล์ทั้งหมด รวมถึงการเปรียบเทียบไฟล์ทั้งหมดกับโค้ดต้นฉบับ ไม่พบสคริปต์ใดๆแปลกปลอม
- ทดสอบปิดการทำงานของ Javascript บนบราวเซอร์พบว่ายังมีโค้ดดังกล่าวอยู่
ถึงบทสรุปเลยละกัน เพราะเอาจริงๆแล้วผมเองก้ไม่รู้หรอกว่ามันแวบมาตอนไหนว่าสคริปต์อาจมาจาก Cloudfare ซึ่งผมใช้บริการอยู่ (น่าจะจากการสังกตสคริปต์ว่ามีคำว่า cf ซึ่งอาจย่อมาจาก Cloudfare) ซึ่งก็เป็นจริงๆ เพราะจากการสังกตเพิ่มเติมคือตำแหน่งของสคริปต์ที่แทรกเป็นส่วนของอีเมล์ (แต่ก็ไม่ได้เป็นกับทุกอีเมล์บนเว็บไซต์) และข้อความที่แสดงว่า "email protected" ทำให้ผมเปลี่ยนไปเป้าหมายไปหาข้อมูลจาก cloudfare แทน
ซึ่งผลก็เป็นดังคาด เมื่อผมปิดการใช้งาน Cloudfare สคริปต์ก็กลับมาเป็นปกติ
จากการตรวจสอบเพิ่มเติม (บน Cloudfare) สคริปต์ดังกล่าวเป็นคุณสมบัติ Email Address Obfuscation ซึ่งเป็น Service หนึ่งของ Cloudfare ซึ่งทำหน้าที่ในการเข้ารหัส Email ป้องกันไม่ให้มีการคัดลอกอีเมล์จาก bot ต่างๆไปใช้ และแน่นอนว่าเมื่อมันเป็นบริการหนึ่งของ Cloudfare เราก็สามารถปิดการใช้งานเฉพาะบริการนี้ของ Cloudfare ได้ โดยเข้าไปที่หัวข้อ Scrape Shield บน Cloudfare และปิดการใช้งาน Email Address Obfuscation ซะ