AVG เพิ่งบอกฉันว่าหน้าเว็บที่ถูกบล็อกเพราะJavaScript Obfuscation
เพราะเหตุใดหน้าเว็บจึงถูกปิดกั้นและหมายความว่าอย่างไร
AVG เพิ่งบอกฉันว่าหน้าเว็บที่ถูกบล็อกเพราะJavaScript Obfuscation
เพราะเหตุใดหน้าเว็บจึงถูกปิดกั้นและหมายความว่าอย่างไร
คำตอบ:
การทำให้งงงวยเป็นวิธีการ "ปิดบัง" ความหมายและเจตนาแท้จริงของจาวาสคริปต์ของคุณ บางเว็บไซต์ใช้เป็นอุปสรรคต่อผู้ที่ต้องการคัดลอก / ยืมรหัส เว็บไซต์อื่น ๆ ใช้เป็นเครื่องมือในการซ่อนเจตนาแท้จริงของรหัส
บางรูปแบบของความสับสน:
การปิดบังไม่ได้เป็นความชั่วร้าย แต่สามารถใช้ซ่อนความตั้งใจชั่วร้ายและนั่นอาจเป็นสิ่งที่ AVG คัดค้าน มันตรวจพบความสับสนมากจนไม่สามารถบอกได้ว่าจาวาสคริปต์กำลังพยายามทำสิ่งที่พยายามป้องกันไว้หรือไม่ ดังนั้นจึงประกาศรหัสว่าไม่ปลอดภัยโดยค่าเริ่มต้นเนื่องจากไม่สามารถตรวจสอบว่ารหัสดูเหมือนว่าตกลง
1
และ2
ยังทำโดย javascript compressors Compressors ทำให้งงงวยรหัสเป็นผลข้างเคียง แต่นั่นไม่ใช่วัตถุประสงค์หลักของพวกเขา; วัตถุประสงค์หลักของมันคือการทำให้จาวาสคริปต์เล็กลงเพื่อลดแบนด์วิดท์
การทำให้งงหมายถึงการซ่อนความหมายที่ตั้งใจไว้ของบางสิ่งบางอย่าง
ในกรณีนี้ตัวอย่าง JavaScript ที่อ่านได้ชัดเจนเช่น
window.onload = function() { alert("Hello " + username) };
สามารถทดแทนได้โดย
var _0xc5b2=["\x6F\x6E\x6C\x6F\x61\x64",
"\x48\x65\x6C\x6C\x6F\x20"];window[_0xc5b2[0]]=
function (){alert(_0xc5b2[1]+username);} ;
หรือแม้กระทั่ง
eval(unescape("var%20_0xc5b2%3D%5B%22onload%22%2C%22Hello%20%22%5D%3Bwindow"+
"%5B_0xc5b2%5B0%5D%5D%3Dfunction%20%28%29%7Balert%28_0xc5b2%5B1%5D+username"+
"%29%3B%7D%20%3B"));
ตัวอย่างโค้ดทั้งสามนั้นทำสิ่งเดียวกัน แต่การอ่านเพียงครั้งแรกจะช่วยให้คุณเข้าใจความตั้งใจได้ง่าย
เห็นได้ชัดว่า AVG พยายามเข้าใจวัตถุประสงค์ของรหัส JavaScript ก่อนที่จะอนุญาตให้มีการดำเนินการ เมื่อรหัสยุ่งเหยิง AVG อาจจะล้มเหลว ดังนั้นการเตือน
ดังที่กล่าวไปแล้วบางเว็บไซต์ทำให้ JavaScript ของพวกเขาไม่ยุ่งเหยิงเพราะความตั้งใจชั่วร้าย แต่เพื่อทำให้การขโมยผลงานของพวกเขาทำได้ยาก การทำให้งงงวยมักจะไร้ประโยชน์หากใช้เพื่อจุดประสงค์นี้ แต่ประเด็นคือการทำให้งงไม่ได้แปลว่าเจตนาที่ไม่ดี