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

 

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

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
งานประจำวันที่ 18 มิถุนายน 2562
โดย EyePornnipa อ 18 มิ.ย. 2019 10:03 am บอร์ด M089 - นางสาวพรนิภา ราชธานี
0
4
อ 18 มิ.ย. 2019 10:03 am โดย EyePornnipa
งานประจำวันที่ 18 มิถุนายน 2562
โดย chatee supasand อ 18 มิ.ย. 2019 10:00 am บอร์ด MT33 - นายชาตรี สุภาแสน
0
1
อ 18 มิ.ย. 2019 10:00 am โดย chatee supasand
อยากทราบวิธีการปรับขนาดของ browser ในแสดงผลเฉพาะส่วนที่ต้องการ
โดย Ittichai_chupol จ 17 มิ.ย. 2019 7:21 pm บอร์ด Programming - PHP
0
8
จ 17 มิ.ย. 2019 7:21 pm โดย Ittichai_chupol
อยากทราบวิธีการ สร้าง css เพื่อกำหนดตำแหน่งในการแชร์
โดย Ittichai_chupol จ 17 มิ.ย. 2019 2:50 pm บอร์ด HTML CSS
6
39
จ 17 มิ.ย. 2019 6:59 pm โดย thatsawan
CPU มีความร้อนสูงทำให้คอมพิวเตอร์เสียหายจริงหรือไม่ ?
โดย Patipat จ 17 มิ.ย. 2019 6:38 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
13
จ 17 มิ.ย. 2019 6:38 pm โดย Patipat
อยากทราบวิธีสร้างกราฟ เป็นแบบ PHP Stacked Column
โดย Patipat จ 17 มิ.ย. 2019 6:11 pm บอร์ด Programming - PHP
0
10
จ 17 มิ.ย. 2019 6:11 pm โดย Patipat
วิธีการหา Error ของการ Insert ข้อมูลลงฐานข้อมูล Mysql โดยใช้ Mysql
โดย Patipat จ 17 มิ.ย. 2019 5:42 pm บอร์ด SQL Knowledge
0
10
จ 17 มิ.ย. 2019 5:42 pm โดย Patipat
เดินทางจากตัวเมืองนครศรี-วัดเจดีย์ไอ้ไข่ไปอย่างไร(รถโดยสาร)
โดย jirawoot จ 17 มิ.ย. 2019 5:23 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
8
จ 17 มิ.ย. 2019 5:23 pm โดย jirawoot
วิธีการแก้ Netbean Newproject ของ PHP ไม่ขึ้น
โดย Patipat จ 17 มิ.ย. 2019 4:27 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
7
จ 17 มิ.ย. 2019 4:27 pm โดย Patipat
จะเพิ่มรูปภาพเข้ามายัง เว็บบอร์ด PHP ยังไงค่ะ
โดย EyePornnipa จ 17 มิ.ย. 2019 4:14 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
2
22
จ 17 มิ.ย. 2019 7:10 pm โดย EyePornnipa
ให้แสดงเวลาแต่เกิด Notice: A non well formed numeric value encountered in ครับ
โดย jamepiyawat จ 17 มิ.ย. 2019 4:10 pm บอร์ด Programming - PHP
1
15
จ 17 มิ.ย. 2019 5:43 pm โดย mindphp
แหล่งท่องเที่ยวใน จ.นครศรีธรรมราช
โดย jirawoot จ 17 มิ.ย. 2019 4:00 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
14
จ 17 มิ.ย. 2019 4:00 pm โดย jirawoot
การติดตั้งโปรแกรม Nimbus บน google chrom
โดย chatee supasand จ 17 มิ.ย. 2019 3:56 pm บอร์ด Share Knowledge
1
8
จ 17 มิ.ย. 2019 3:58 pm โดย thatsawan
วิธีการแก้ไข sudo must be owned by uid 0 and have the setuid bit set บน ubuntu
โดย jamepiyawat จ 17 มิ.ย. 2019 3:25 pm บอร์ด Share Knowledge
2
18
จ 17 มิ.ย. 2019 4:04 pm โดย jamepiyawat
การเดินทางจากนครศรีธรรมราชมากรุงเทพฯ
โดย EyePornnipa จ 17 มิ.ย. 2019 3:22 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
24
จ 17 มิ.ย. 2019 3:22 pm โดย EyePornnipa
ทำ google เอกสาร ให้คนอื่นแก้ไข หรือ ทำให้แค่เห็นเอกสาร
โดย jamepiyawat จ 17 มิ.ย. 2019 12:10 pm บอร์ด Share Knowledge
0
16
จ 17 มิ.ย. 2019 12:10 pm โดย jamepiyawat
Skype สามารถ ใช้ร่วมกับ OneDrive ได้แล้ว
โดย chatee supasand จ 17 มิ.ย. 2019 11:49 am บอร์ด Microsoft Office Knowledge & line & Etc
0
9
จ 17 มิ.ย. 2019 11:49 am โดย chatee supasand
ประวัติส่วนตัวและความรู้ที่เคยเรียนมา
โดย jirawoot จ 17 มิ.ย. 2019 11:20 am บอร์ด M090 - นายจิระวุฒิ อัครลิขิตกุล
0
4
จ 17 มิ.ย. 2019 11:20 am โดย jirawoot
Job Description
โดย EyePornnipa จ 17 มิ.ย. 2019 11:17 am บอร์ด M089 - นางสาวพรนิภา ราชธานี
0
21
จ 17 มิ.ย. 2019 11:17 am โดย EyePornnipa
Note
โดย jirawoot จ 17 มิ.ย. 2019 11:06 am บอร์ด M090 - นายจิระวุฒิ อัครลิขิตกุล
3
12
จ 17 มิ.ย. 2019 6:13 pm โดย jirawoot