เมื่อ Avira ร่มแดงทำพิษ…

Written on June 20, 2009 – 5:18 pm | by admin |

avira_logo.jpg

สิ่งที่ผมไม่คาดคิดว่าจะเกิดขึ้นจาก สแกนไวรัส Avira เกิดขึ้นแล้วกับเว็บของผมเอง เมื่ออัพเดทตัวล่าสุดของ Avira ของวันที่ 19/06/2552 เกิดมีปฏิกิริยากับ Javascript ที่มีการกำหนดตัวแปรเยอะๆซะแล้ว ทำให้มีสมาชิกในเว็บโทรมาแจ้งว่าเว็บมีไวรัส (อ่าวกรรมละสิ) แต่เมื่อเข้าไปเช็คผมก็ไม่เจอ ที่บ้านใช้ NOD กับ AVG อัพเดทตลอด ไม่เจอ แต่ก็ยังรู้สึกตะหงิดๆก็เลยลองลง Avira แล้วอัพเดทล่าสุด แจ๊คพ๊อตครับ

avira_update.jpg

ซึ่งสิ่งที่เกิดขึ้นนั้นทำให้เกิดการ Alert ขึ้นมาดังนี้

avira_alert.jpg

ซึ่งจากการดูการที่มันแจ้งว่าเป็นไวรัสมันคงคิดว่าโค๊ดมีตัวแปรคล้ายๆกับสคริปไวรัสหรือเปล่า โดยโค๊ดที่ใช้งานมานั้นเขียนแค่

var AMPHER=new Array();
var STATE=’10||กรุงเทพมหานคร||11||สมุทรปราการ||12||นนทบุรี||13||ปทุมธานี||14||พระนครศรีอยุธยา||15||อ่างทอง||16||ลพบุรี||17||สิงห์บุรี||18||ชัยนาท||19||สระบุรี||20||ชลบุรี||21||ระยอง||22||จันทบุรี||23||ตราด||24||ฉะเชิงเทรา||25||ปราจีนบุรี||26||นครนายก||27||สระแก้ว||30||นครราชสีมา||31||บุรีรัมย์||32||สุรินทร์||33||ศรีสะเกษ||34||อุบลราชธานี||35||ยโสธร||36||ชัยภูมิ||37||อำนาจเจริญ||39||หนองบัวลำภู||40||ขอนแก่น||41||อุดรธานี||42||เลย||43||หนองคาย||44||มหาสารคาม||45||ร้อยเอ็ด||46||กาฬสินธุ์||47||สกลนคร||48||นครพนม||49||มุกดาหาร||50||เชียงใหม่||51||ลำพูน||52||ลำปาง||53||อุตรดิตถ์||54||แพร่||55||น่าน||56||พะเยา||57||เชียงราย||58||แม่ฮ่องสอน||60||นครสวรรค์||61||อุทัยธานี||62||กำแพงเพชร||63||ตาก||64||สุโขทัย||65||พิษณุโลก||66||พิจิตร||67||เพชรบูรณ์||70||ราชบุรี||71||กาญจนบุรี||72||สุพรรณบุรี||73||นครปฐม||74||สมุทรสาคร||75||สมุทรสงคราม||76||เพชรบุรี||77||ประจวบคีรีขันธ์||80||นครศรีธรรมราช||81||กระบี่||82||พังงา||83||ภูเก็ต||84||สุราษฎร์ธานี||85||ระนอง||86||ชุมพร||90||สงขลา||91||สตูล||92||ตรัง||93||พัทลุง||94||ปัตตานี||95||ยะลา||96||นราธิวาส’;
…..
…..
…..

จากนั้นก็เอาค่าพวกนั้นมาแยกค่าโดยผ่านการ Split เท่านั้นเอง

function setState(frm,sM) {
var c=frm.elements[’province’];
var aM=eval(”STATE.split(’||’)”);

ซึ่งเป็นโค๊ดในลักษณะของการทำ Multi Dropdown เท่านั้นเอง

avira_alert2.jpg

เมื่อเลือกจังหวัด ก็จะสามารถเลือกอำเภอได้ก็เท่านั้น ก็ไม่รู้ว่าเจ้า Ariva มันไปคิดว่าการกำหนดตัวแปร แล้วเอามาแยก หรือเข้าฟังก์ชั่น eval มันเป็นไวรัสหรือเปล่า มันก็เลยฟ้องขึ้นมาซะงั้น

สแกนไวรัสยี่ห้ออื่นๆไม่เป็นเลยไม่ว่าจะ NOD , McAfee , AVG มีก็แต่ร่มแดงเท่านั้นที่ดันฟ้องกับคำสั่งพวกนี้ ให้ตายสิโรบิน…

เมื่อฟ้อง ก็ได้ เปลี่ยนก็ได้วุ้ย…แต่จะเปลี่ยนยังไงดีหล่ะในเมื่อ Javascript แบบนี้ใช้ไม่ได้ ก็ต้องอาศัยการทำงานในรูปแบบของ Ajax ซะแล้ว ก็มานั่งเขียนใหม่ด้วยการใช้งานในรูปแบบของ Ajax โดยเขียนง่ายๆ

<script type=”text/javascript”>
var http = false;

if(navigator.appName == “Microsoft Internet Explorer”) {
  http = new ActiveXObject(”Microsoft.XMLHTTP”);
} else {
  http = new XMLHttpRequest();
}

function SetAmpher(province) {
  http.abort();
  http.open(”GET”, “Ampher.php?province=” + province, true);
  http.onreadystatechange=function() {
    if(http.readyState == 4) {
      document.getElementById(’ampher_select’).innerHTML = http.responseText;
    }
  }
  http.send(null);
}
</script>

จากนั้นในฟอร์มของเราก็จะสั่งให้มันทำงานตอนที่เราเลือกจังหวัด โค๊ดก็เป็นลักษณะประมาณนี้

<form name=”vip” method=”GET” action=”">
  <select name=”province“  id=”province” style=”width:200px;” onChange=”SetAmpher(province.value)”>
  <option value=”">เลือกจังหวัด</option>
  <option value=”1″>กรุงเทพมหานคร</option>
  <option value=”2″>เชียงใหม่</option>
  </select>
  <div id=”ampher_select”>
  <select name=”ampher” size=”1″ id=”ampher” style=”width:200px;” ></select>
  </div>
  <INPUT TYPE=”submit”>
</form>

ก็ไม่มีอะไรมากก็แค่เวลาเราเลือก Select จังหวัด สคริปก็จะสั่งให้ไปเรียกสคริปที่ชื่อ Ampher.php แล้วส่งค่าตัวแปรที่ชื่อ province ออกไปด้วย จากนั้นเมื่อไฟล์ Ampher.php ทำงานเสร็จก็จะแสดงผล Select ที่เป็นส่วนของอำเภอในจังหวัดนั้นออกมา

ง่ายๆแต่ใช้การได้ดีครับ เดี๋ยวคงจะไล่เปลี่ยน Javascript ลักษณะนี้ทิ้งๆ เพราะกลัววันดีคืนดีเจ้า Avira มันจะเอ๋อฟ้องออกมาแบบนี้อีก หันไปใช้งาน Ajax ให้หมดเลยดีกว่า

You must be logged in to post a comment.

Editor's Talk!

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

นายแม็ค

ค้นหา :