����������� เนื่องจากผมได้เจอคำถามจากเพื่อนสมาชิกใน board thaiseoboard.com ตั้งคำถามว่า
// read POST variables if present
foreach ($_POST as $name => $value) {�
������ $$name = $value;
}
Script บรรทัดนี้หมายความว่ายังไง ก็เลยเป็นเหตุได้เขียนบทความนี้
������������ ที่เป็นคำถามเพราะว่าเจอตัวแปรที่มี $$ นำหน้า ซึ่งปกติทั่วไปจะเป็น $ อันเดียว ลักษณะที่เป็น $$ �เป็นการสร้างตัวแปรแบบ dynamic �เช่น
$name = 'test' ;
$$name จะหมายถึง $test
การรับค่า $$name = 1 ;
ก็แสดงว่า $test มีค่าเท่ากับ 1
อันนี้น่าจะพอเข้าใจกันแล้ว ทีนี้มาดูจุดมุ่งหมายของ Script นี้
// read POST variables if present
foreach ($_POST as $name => $value) {� // name เป็น index ของ array
������ $$name = $value; // ส่งค่าให้กับตัวแปร
}
�
จาก script เป็นการแก้ปัญหาการ config register_globals = Off ใน php.ini �ซึ่งค่าจาก form จะอยู่ในรูป $_POST['test'] ,$_GET['test'] ไม่สามารถ เอา $test มาใช้ได้เลยทันที แต่ถ้า register_globals = On จะสามารถใช้ $test ได้เลย
ด้วยเหตุนี้ถ้าไม่สามารถแก้ php.ini ได้(กรณีเช่าโฮสอยู่) ก็มาแก้ที่โปรแกรมโดยการวนลูป� $_POST ซึ่งเป็น array แล้วส่งค่าให้กับตัวแปรตามค่า index ของมันซึ่งค่า index ของมันก็คือชื่อตัวแปรนั้นเอง
ตัวอย่างเช่นใน form มีการส่งค่า username=var1 และ password=var2 มา� ในการรับค่าจาก form จะได้เป็น $_POST[username'] และ $_POST[password'] �โดยในรูปแบบ array จะเป็น (username’=>var1 ,’password’=>var2)
ปล. register_globals = Off� แนะนำให้ใช้เพราะเหตุผลทางด้าน security ครับ อีกตัว magic_quotes_gpc = On ป้องกัน Sql injection ครับ
พอดีวันนี้ผมได้รับเมล์แปลกๆจากธนาคารแห่งนึง ด้วยความที่ผมไม่เคยใช้บริการของที่นั้นเลยแปลกใจว่าทำไมจึงส่งเมล์มาให้และจากประสบการณ์ที่เรียนวิชา Advance IT Security มาเลยทำให้พอจะเดาออกว่าต้องเป็น Phishing [1,2] แน่ๆ� ก็เลยจัดการดูที่ link ที่ส่งไปก็เลยรู้ว่า phishing จริงด้วย
ข้อควรปฏิบัติในกรณีเจอเหตุการแบบนี้
- ตรวจสอบให้แจ่ในก่อนว่าเป็นเมล์ของธนาคารจริง เช่นดู link ดังภาพ
- ถ้าไม่แน่ใจให้สอบถามไปที่ธนาคารโดยตรงเช่นโทรติดต่อแบบนี้แน่นอนกว่า
- ลบเมล์ทิ้งเลย
Phishing� [1] คือ การโจมตีในรูปแบบของการปลอมแปลงอี-เมล์ (Email Spoofing) และทำการสร้างเว็บไซต์ปลอม เพื่อทำการหลอกลวงให้เหยื่อหรือผู้รับอี-เมล์เปิดเผยข้อมูลทางด้านการเงินหรือข้อมูลส่วนบุคคลอื่นๆ อาทิ ข้อมูลของหมายเลขบัตรเครดิต บัญชีผู้ใช้ (Username) และ รหัสผ่าน (Password) หมายเลขบัตรประจำตัวประชาชน หรือข้อมูลส่วนบุคคลอื่นๆ
Phishing สามารถทำได้โดยการขโมยหรือนำเครื่องหมายหรือสัญลักษณ์ตลอดจนรูปลักษณ์ของธนาคารหรือสถาบันการเงินที่มีชื่อเสียง และบัตรเครดิตประเภทต่างๆของผู้ประกอบการ การให้สินเชื่อทางอินเตอร์เน็ต มาประกอบเข้ากับการหลอกลวงเหยื่อหรือผู้ใช้ให้เปิดเผยข้อมูล ซึ่งมีการประเมินเบื้องต้นว่า การโจมตีในรูปแบบของ phishing สามารถหลอกให้เหยื่อร้อยละ 5 ของทั้งหมด เปิดเผยข้อมูลที่ต้องการ นอกจากนี้ ผู้โจมตี (Hacker หรือ Spammer) ยังใช้ยุทธวิธีการหลอกลวงแบบ Social Engineering ประกอบเพิ่มเติม เพื่อให้มีความน่าเชื่อถือยิ่งขึ้น เช่น การหลอกลวงชื่ออี-เมล์ เป็นต้นว่า เป็นเรื่องด่วนจากธนาคาร การหลอกลวงว่าบัญชีที่ใช้งานจะหมดอายุ การเสนอสินค้าที่มีดอกเบี้ยต่ำต่างๆ เป็นต้น
เนื่องจากการโจมตีแบบ phishing ได้มีการแพร่ระบาดไปในหลายประเทศ ซึ่งทำให้คาดการณ์ได้ว่า อาจมีการแพร่เข้ามาในประเทศไทยในอีกไม่นานนี้ จึงมีความจำเป็นต้องแจ้งให้ประชาชนได้รับทราบถึงภัยที่มีความรุนแรงนี้
อ้างอิง
[1] เทคนิคการโจมตีแบบ “Phishing”, http://www.thaicert.org/paper/basic/phishing.php
[2] Phishing, http://en.wikipedia.org/wiki/Phishing