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

 

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

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
วิธีใส่ลิงค์แบบเทพๆใน Google Slide
โดย napharat079 ส 20 เม.ย. 2019 3:41 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
2
ส 20 เม.ย. 2019 3:41 pm โดย napharat079
วิธีการ Mark รูปภาพให้มีรูปร่างเก๋ๆ บน Google slide
โดย napharat079 ส 20 เม.ย. 2019 2:04 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
9
ส 20 เม.ย. 2019 2:04 pm โดย napharat079
อยากทราบวิธีการแก้ไข้ javascript ให้ทำการแสดงปุ่ม แสดงความคิดเห็นย่อยย้ายตำแหน่งมาด้านล่างหลักจากการกดครั้งแรก
โดย Ittichai_chupol ส 20 เม.ย. 2019 1:33 pm บอร์ด Programming - PHP
2
11
ส 20 เม.ย. 2019 3:29 pm โดย Ittichai_chupol
Tip! ค้นหารูปภาพจาก Google บน Google slide
โดย napharat079 ส 20 เม.ย. 2019 1:20 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
8
ส 20 เม.ย. 2019 1:20 pm โดย napharat079
การออกจาก phpmyadmin
โดย Anonymous ส 20 เม.ย. 2019 10:42 am บอร์ด Programming - PHP
0
2
ส 20 เม.ย. 2019 10:42 am โดย บุคคลทั่วไป
อยากทราบวิธีการกดปุ่มแชร์แล้วให้ แคป ภาพในส่วนที่ต้องการแชร์ ใน เว็บบอร์ด phpbb
โดย Ittichai_chupol ส 20 เม.ย. 2019 10:11 am บอร์ด Programming - PHP
0
5
ส 20 เม.ย. 2019 10:11 am โดย Ittichai_chupol
งานประจำวันที่ 20 เมษายน 2562
โดย poumtip ส 20 เม.ย. 2019 10:00 am บอร์ด M080 - สุทธาทิพย์ อู่นาค
1
17
ส 20 เม.ย. 2019 1:38 pm โดย mindphp
งานประจำวันที่ 20 เมษายน 2562
โดย napharat079 ส 20 เม.ย. 2019 9:56 am บอร์ด M079 - นภารัตน์ ฐิติกรโกวิท
1
9
ส 20 เม.ย. 2019 4:02 pm โดย mindphp
Q - ในเรื่องการคืนของถ้าคืนแบบไม่ตรงอินวอยได้ไหมค่ะ [2019-04][011]
โดย Parichat ศ 19 เม.ย. 2019 7:32 pm บอร์ด Diageo - Web Ordering - Developer
0
2
ศ 19 เม.ย. 2019 7:32 pm โดย Parichat
B - Urgent!!! ข้อมูลในเว็ปหาย [2019-04][010]
โดย Parichat ศ 19 เม.ย. 2019 6:39 pm บอร์ด Diageo - Web Ordering - Tester
2
6
ศ 19 เม.ย. 2019 7:36 pm โดย Parichat
การบันทึกบัญชีค่าใช้จ่าย
โดย สริญญา สมสา ศ 19 เม.ย. 2019 6:05 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
12
ศ 19 เม.ย. 2019 6:05 pm โดย สริญญา สมสา
การบันทึกบัญชีรายได้
โดย สริญญา สมสา ศ 19 เม.ย. 2019 5:53 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
7
ศ 19 เม.ย. 2019 5:53 pm โดย สริญญา สมสา
การบันทึกบัญชีหนี้สิน
โดย สริญญา สมสา ศ 19 เม.ย. 2019 5:38 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
8
ศ 19 เม.ย. 2019 5:38 pm โดย สริญญา สมสา
สอนดราฟตัวการ์ตูนด้วย illustrator
โดย napharat079 ศ 19 เม.ย. 2019 5:24 pm บอร์ด Graphic design
0
13
ศ 19 เม.ย. 2019 5:24 pm โดย napharat079
การบันทึกบัญชีสินทรัพย์
โดย สริญญา สมสา ศ 19 เม.ย. 2019 4:51 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
7
ศ 19 เม.ย. 2019 4:51 pm โดย สริญญา สมสา
บริษัท สยามเวลเนสกรุ๊ป จำกัด (มหาชน) รับสมัคร ตำแหน่ง Software Instructor and Support
โดย Anonymous ศ 19 เม.ย. 2019 4:14 pm บอร์ด Programming - PHP
0
5
ศ 19 เม.ย. 2019 4:14 pm โดย บุคคลทั่วไป
การบันทึกบัญชีการเพิ่มหนี้
โดย สริญญา สมสา ศ 19 เม.ย. 2019 3:51 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
7
ศ 19 เม.ย. 2019 3:51 pm โดย สริญญา สมสา
การบันทึกบัญชีการลดหนี้
โดย สริญญา สมสา ศ 19 เม.ย. 2019 1:57 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
7
ศ 19 เม.ย. 2019 1:57 pm โดย สริญญา สมสา
งานประจำวันที่ 19 เมษายน 2562
โดย poumtip ศ 19 เม.ย. 2019 9:26 am บอร์ด M080 - สุทธาทิพย์ อู่นาค
1
10
ศ 19 เม.ย. 2019 7:17 pm โดย poumtip
งานประจำวันที่ 19 เมษายน 2562
โดย napharat079 ศ 19 เม.ย. 2019 9:08 am บอร์ด M079 - นภารัตน์ ฐิติกรโกวิท
2
14
ศ 19 เม.ย. 2019 7:07 pm โดย napharat079