ให้เรตสมาชิก: 0 / 5

ดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

 

csrf
csrf

 

     การโจมตีแบบ (CSRF) หรือ Cross-site Request Forgery  จะใช้ “ตัวตน (Identity)” และ “สิทธิ์ (Privilege)” ของเหยื่อที่มีบนเว็บไซต์ ในการปลอมตัวเป็นเหยื่อ Hacker จะใช้ประโยชน์จาก Cookies ที่เก็บไว้บน Webbrowser (เว็บเบราว์เซอร์) ที่ส่ง Cookie ไปเก็บข้อมูลเพื่อใช้ในการการพิสูจน์ตัวตน Website (เว็บไซต์) ผู้ให้บริการควรเปลี่ยนจากการใช้ Cookie ที่ทำ  Session-tracking มาเป็น Session Token ที่ถูกสร้างขึ้นแบบไดนามิก ทำให้ Hacker ทำการ Hack ได้ยากมากขึ้น

     โดยบทความนี้จะกล่าวถึงวิธีสร้าง Form ป้องกันการโจมตีแบบ CSRF ใน php อย่างง่าย

 

วิธีสร้าง Form ป้องกันการโจมตีแบบ CSRF ใน php

 

หน้า index.php

<html>
   <head>
       <title>วิธีสร้าง Form ป้องกันการโจมตีแบบ CSRF ใน php</title>
   </head>
   <body>
       <form action="sign.php" method="post" name="frm_data">
    <table width="500">
   <caption><h3>วิธีสร้าง Form ป้องกันการโจมตีแบบ CSRF ใน php</h3></caption>
   <tr>
    <td>Input :</td>
    <td>
    <input type="text" class="form-control" name="name"  id="name" value=""/>
    </td>
    <input type = "hidden" name ="<?php echo md5(session_id()); ?>" value="1">
   </tr>
   <tr>
    </td><td><td><input name="but_submit" type="submit" value="Submit" /></td>
   </tr>
   </form>
</body>
</html>

 

หน้า sign.php

<?php
$token = md5(session_id());

 if (isset($_POST["name"])) {
   	$name = $_POST["name"];
        if(!isset($_POST[$token])){
            echo "โทเค็นการรักษาความปลอดภัยไม่ตรงกัน การร้องขอถูกยกเลิกเพื่อป้องกันการละเมิดความปลอดภัย โปรดลองอีกครั้ง";
            exit;  
        }
        if($_POST[$token] == $token){
            echo "โทเค็นการรักษาความปลอดภัยไม่ตรงกัน การร้องขอถูกยกเลิกเพื่อป้องกันการละเมิดความปลอดภัย โปรดลองอีกครั้ง" ;
            exit;        
        }
        echo  $_POST['name'];
   }

?>

 

ผลลัพธ์ 

 

หน้า index.php

 

หน้า index.php
หน้า index.php

 

หน้า sign.php (จะรับค่าจากหน้า index.php)

 

หน้า sign.php
หน้า sign.php

      หมายเหตุ : ตัวแปร token มีค่าไม่เท่ากับค่าที่ไดนามิคออกมา หรือไม่มีเลยจะแสดงว่า "โทเค็นการรักษาความปลอดภัยไม่ตรงกัน การร้องขอถูกยกเลิกเพื่อป้องกันการละเมิดความปลอดภัย โปรดลองอีกครั้ง"

 

อ้างอิงรูปภาพ : flickr.com

 

ข่าวสารเพิ่มเติมเกี่ยวกับ PHP

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
ขอแนะนำโปรแกรมบัญชีออนไลน์
โดย Anonymous อ 21 ต.ค. 2018 11:22 pm บอร์ด ถาม - ตอบ ธุรกิจ กฏหมาย ภาษี บัญชี
0
12
อ 21 ต.ค. 2018 11:22 pm โดย บุคคลทั่วไป
R - mdsoft_sale_product_set - ขายสินค้าเป็น set + POS
โดย thatsawan อ 21 ต.ค. 2018 7:13 pm บอร์ด บุญนำพา - Developer
0
1
อ 21 ต.ค. 2018 7:13 pm โดย thatsawan
Training-ไพธอนและซิลิเนียม
โดย prakon ส 20 ต.ค. 2018 11:13 pm บอร์ด MT24 - นายปกรณ์ วิริยะธนวิโรจน์
0
3
ส 20 ต.ค. 2018 11:13 pm โดย prakon
Q- สอบถามครับผม ตั้งตั้ง Module pythainlp ไม่ได้
โดย tatiya ส 20 ต.ค. 2018 6:16 pm บอร์ด Programming - C/C++ & java & Python
0
18
ส 20 ต.ค. 2018 6:16 pm โดย tatiya
ทรัพย์สินที่ต้องเสียภาษีการรับมรดก
โดย nice_13 ส 20 ต.ค. 2018 3:13 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
18
ส 20 ต.ค. 2018 3:13 pm โดย nice_13
ทำอย่างไรถึงจะได้ ภ.พ.20
โดย nice_13 ส 20 ต.ค. 2018 2:53 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
19
ส 20 ต.ค. 2018 2:53 pm โดย nice_13
Q - วิธีการสร้าง like เพื่อที่จะส่งค่าไปยังไฟล์ controller ใน phpbb
โดย Ittichai_chupol ส 20 ต.ค. 2018 2:31 pm บอร์ด Programming - PHP
1
25
ส 20 ต.ค. 2018 2:34 pm โดย thatsawan
R - Template thai vi - ทั้ง 3 ขนาด
โดย thatsawan ส 20 ต.ค. 2018 12:15 pm บอร์ด ThaiVI - Developer
0
3
ส 20 ต.ค. 2018 12:15 pm โดย thatsawan
งานประจำวันที่ 20 ตุลาคม 2561
โดย tatiya ส 20 ต.ค. 2018 10:06 am บอร์ด M065 - ตติยะ นาชัย
1
3
ส 20 ต.ค. 2018 9:08 pm โดย tatiya
งานประจำวันที่ 20 ตุลาคม 2561
โดย nice_13 ส 20 ต.ค. 2018 10:00 am บอร์ด M071 - พิชญ์สินี คงจร
1
2
ส 20 ต.ค. 2018 7:20 pm โดย nice_13
งานประจำวันที่ 20 ตุลาคม 2561
โดย Ittichai_chupol ส 20 ต.ค. 2018 9:39 am บอร์ด M070 - อิทธิชัย ชูผล
1
5
ส 20 ต.ค. 2018 7:11 pm โดย Ittichai_chupol
ionic error
โดย Anonymous ส 20 ต.ค. 2018 9:21 am บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
1
21
ส 20 ต.ค. 2018 10:29 am โดย mindphp
เมื่อ User ถามหางานที่บันทึกไว้จาก IT
โดย tai14 ศ 19 ต.ค. 2018 3:25 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
44
ศ 19 ต.ค. 2018 3:25 pm โดย tai14
โปรเจคทั่วไป VS โปรจคที่มีผลกับโบนัส
โดย tai14 ศ 19 ต.ค. 2018 2:23 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
35
ศ 19 ต.ค. 2018 2:23 pm โดย tai14
งานประจำวันที่ 19 ตุลาคม 2561
โดย prakon ศ 19 ต.ค. 2018 10:03 am บอร์ด MT24 - นายปกรณ์ วิริยะธนวิโรจน์
1
12
ศ 19 ต.ค. 2018 7:05 pm โดย prakon
งานประจำวันที่ 19 ตุลาคม 2561
โดย pprn ศ 19 ต.ค. 2018 9:25 am บอร์ด MT25 - นางสาวปรียากมล รินนาศักดิ์
1
17
ศ 19 ต.ค. 2018 6:28 pm โดย pprn
งานประจำวันที่ 19 ตุลาคม 2561
โดย Ittichai_chupol ศ 19 ต.ค. 2018 9:09 am บอร์ด M070 - อิทธิชัย ชูผล
1
6
ศ 19 ต.ค. 2018 6:51 pm โดย Ittichai_chupol
งานประจำวันที่ 19 ตุลาคม 2561
โดย tai14 ศ 19 ต.ค. 2018 9:05 am บอร์ด MT26 - นางสาวอัครยุภา ยงยุทธ
1
4
ศ 19 ต.ค. 2018 6:17 pm โดย tai14
งานประจำวันที่ 19 ตุลาคม 2561
โดย tatiya ศ 19 ต.ค. 2018 9:04 am บอร์ด M065 - ตติยะ นาชัย
1
6
ศ 19 ต.ค. 2018 7:01 pm โดย tatiya
งานประจำวันที่ 19 ตุลาคม 2561
โดย nice_13 ศ 19 ต.ค. 2018 8:58 am บอร์ด M071 - พิชญ์สินี คงจร
1
3
ศ 19 ต.ค. 2018 6:37 pm โดย nice_13