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

 

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

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
โปรแกรมแปลงหน่วย เครื่องมือในการแปลงหน่วยความจุคอมพิวเตอร์
โดย prmindphp จ 20 ม.ค. 2020 6:24 pm บอร์ด MindPHP News & Feedback
0
1
จ 20 ม.ค. 2020 6:24 pm โดย prmindphp
เทคนิคทำธุรกิจอสังหาอย่างไรให้มีกำไร
โดย Patty Perfume อ 19 ม.ค. 2020 7:12 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
10
อ 19 ม.ค. 2020 7:12 pm โดย Patty Perfume
ความปลอดภัยด้านสุขภาพ เรื่องที่ทุกคนควรเริ่มต้นใฝ่หา
โดย medalezga อ 19 ม.ค. 2020 4:30 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
26
อ 19 ม.ค. 2020 4:30 pm โดย medalezga
วิธีการนำชื่อข้อมูลในชื่อในฐานข้อมูล ในไฟล์ XML ของ module joomla
โดย jamepiyawat ส 18 ม.ค. 2020 6:44 pm บอร์ด Joomla Developing Knowledge
0
45
ส 18 ม.ค. 2020 6:44 pm โดย jamepiyawat
วิธีการจัดทำการระบบแจ้้งเตือนใน phpbb
โดย Ittichai_chupol ส 18 ม.ค. 2020 5:42 pm บอร์ด PHP Knowledge
0
15
ส 18 ม.ค. 2020 5:42 pm โดย Ittichai_chupol
Pillow library ปรับขนาดรูปเป็นเปอร์เซ็นเพื่อนำไปใช้งานได้สะดวก
โดย benzas00123 ส 18 ม.ค. 2020 5:25 pm บอร์ด Python Knowledge
0
7
ส 18 ม.ค. 2020 5:25 pm โดย benzas00123
Pillow library Optimize รูปภาพเพื่อให้มีขนาดของข้อมูลที่เล็กลง
โดย benzas00123 ส 18 ม.ค. 2020 2:53 pm บอร์ด Python Knowledge
0
16
ส 18 ม.ค. 2020 2:53 pm โดย benzas00123
ตัวช่วยในการคำนวณแคลอรี่สำหรับผู้ที่รักการออกกำลังกาย
โดย prmindphp ส 18 ม.ค. 2020 11:50 am บอร์ด MindPHP News & Feedback
0
57
ส 18 ม.ค. 2020 11:50 am โดย prmindphp
เราจะเก็บรูปข้อมูลของรูปลง database เราจะใช้ data type อะไรครับ
โดย benzas00123 ส 18 ม.ค. 2020 11:31 am บอร์ด SQL - Database
2
56
ส 18 ม.ค. 2020 1:17 pm โดย benzas00123
อยากทราบวิธีการแก้ไขปัญหาการ อัพโหลดไฟล์ excel แล้วไม่รองรับภาษาไทย
โดย Ittichai_chupol ศ 17 ม.ค. 2020 5:58 pm บอร์ด Programming - PHP
7
51
จ 20 ม.ค. 2020 2:05 pm โดย saravana
ต้องการนับจำนวนอักษรเเละตัดอักษรที่เกิน มีปัญหากับภาษาไทย
โดย thatsawan ศ 17 ม.ค. 2020 5:18 pm บอร์ด Programming - C/C++ & java & Python
0
14
ศ 17 ม.ค. 2020 5:18 pm โดย thatsawan
สอบถามครับ ลูปค่าออกมาแล้วต้องการให้มันเก็บค่าในตัวแปร ต้องทำยังไงครับ
โดย chatee supasand ศ 17 ม.ค. 2020 3:51 pm บอร์ด Programming - C/C++ & java & Python
3
41
ศ 17 ม.ค. 2020 5:19 pm โดย thatsawan
อยากทราบวิธีก่ารเปิด exe ใน ubutu เวอชั่น 14
โดย Ittichai_chupol ศ 17 ม.ค. 2020 2:33 pm บอร์ด Programming - PHP
2
60
ศ 17 ม.ค. 2020 4:14 pm โดย Ittichai_chupol
วิธีการสร้างระบบชำระเงินด้วย omise โดยใช้ php
โดย Ittichai_chupol พฤ 16 ม.ค. 2020 6:53 pm บอร์ด PHP Knowledge
0
58
พฤ 16 ม.ค. 2020 6:53 pm โดย Ittichai_chupol
Pillow library กับการ เปลี่ยนนามสกุล img ทีเดียวหลายๆ file
โดย benzas00123 พฤ 16 ม.ค. 2020 5:45 pm บอร์ด Python Knowledge
0
25
พฤ 16 ม.ค. 2020 5:45 pm โดย benzas00123
Pillow library ในการจัดการและประมวลผลรูปภาพ
โดย benzas00123 พฤ 16 ม.ค. 2020 5:04 pm บอร์ด Python Knowledge
0
59
พฤ 16 ม.ค. 2020 5:04 pm โดย benzas00123
ความแตกต่างระหว่าง visibility: hidden; กับ display: none;
โดย Ittichai_chupol พ 15 ม.ค. 2020 6:44 pm บอร์ด CSS Knowledge
0
96
พ 15 ม.ค. 2020 6:44 pm โดย Ittichai_chupol
ตัวอย่าง การ Query ข้อมูลทีเป็นที่ได้ผลการค้นหา
โดย mindphp พ 15 ม.ค. 2020 6:40 pm บอร์ด Programming - C/C++ & java & Python
0
38
พ 15 ม.ค. 2020 6:40 pm โดย mindphp
สอบถามครับ ทำไมสร้างตารางฐานข้อมูลแล้ว มันไม่ใน ใน pg
โดย chatee supasand พ 15 ม.ค. 2020 5:55 pm บอร์ด Programming - C/C++ & java & Python
4
41
พ 15 ม.ค. 2020 6:07 pm โดย thatsawan
ขอสอบถาม error ของ flask ครับ
โดย benzas00123 พ 15 ม.ค. 2020 10:44 am บอร์ด Programming - C/C++ & java & Python
4
41
พ 15 ม.ค. 2020 10:53 am โดย benzas00123