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

ดาวใช้งานดาวใช้งานดาวใช้งานดาวใช้งานดาวใช้งาน
 

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

 

การสร้างฟอร์มป้องกันการโจมตีแบบ CSRF เป็นการโจมตีแบบการดึงข้อมูลที่ส่มมาจากฟอร์ม
การสร้างฟอร์มป้องกันแบบ CSRF (ซีเอสอาเอฟ)

 

         ในการสร้างฟอร์มเราก็จะต้องมีการส่งค่าที่ผู้ใช้งานกรอกเข้าไปเพื่อเอาไปทำการต่างๆไม่ว่าจะเอาไปเก็บไว้ลงฐานข้อมูลและเอาไปเพื่อกระทำการต่างๆที่เป็นเกี่ยวกับธุรกรรมทางการเงินหรือเป็นการ Login หรือ การเอาไปคำนวณต่างๆเราก็จะต้องป้องกันการโดนโจรกรรมข้อมูลจากผู้ที่ไม่หวังดีหรือพวกแฮกเกอร์ต่างโดยในการโจมตีของแฮกเกอร์ที่นิยมมาโจมดีเว็บไซต์จะโจมตีกันแบบ CSRF หรือ Cross-site Request Forgery (ครอส ไซต์ ริคเวซท์ ฟอร์เจอะรี) โดยตัว CSRF เป็นการโจมตีโดยการใช้ตัวตนและสิทธิ์ของเหยื่อที่มีบนเว็บไซต์โดยจะทำการปลอมตัวเป็นเหยื่อและกระทำการหรือธุรกรรมไม่พึงประโยชน์จากเหยื่อที่มีการ Login Cookies เก็บไว้ในเบราเซอร์ จึงทำให้เว็บไซต์ที่เป็นพวก E-Commerce หรือเว็บธนาคารต่างที่มีการส่ง Cookie ไปเก็บข้อมูลการพิสูจน์ตัวตนของผู้ใช้งานจึงทำให้ผู้ใช้งานตกเป็นเหยื่อของการโจมตีแบบ CSRF ไปได้จึงทำให้ผู้พัฒนาระบบเขียนโค้ดเพื่อป้องกันโดยการใช้ token เพื่อใช้ในการเช็คอีกทีนึง โดยสามารถเขียนโค้ดได้ดังนี้

 

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

  1. สร้างหน้าฟอร์มมาในไฟล์ default.php ที่อยู่ในโฟลเดอร์ tmpl ที่อยู่ในโฟลเดอร์ view อีกทีนึง
  2. จากนั้นเพิ่มโค้ด token ไปก่อนที่จะปิด <from> ดังโค้ดตัวอย่าง
    <form action="<?php echo JRoute::_('index.php?option=com_test&view=testmindphp') ?>" method="post" name="adminForm" id="adminForm">
    <input type="text" name="username">
    <input type="password" name="password">
    <input type="submit" name="submit">
    
    <?php echo JHtml::_('form.token'); ?>
    </form>​
  3. จากนั้นในไฟล์ .php ที่อยู่ในโฟลเดอร์ controllers จะต้องเพิ่มฟังก์ชันใน class ที่อยู่ในไฟล์นั้นและจากนั้นก็เพิ่มโค้ดเช็ค token อีกครั้งนึกว่าฟอร์มที่ทำการ Submit มามีการส่งค่า token มาด้วยไหมถ้าไม่มีการส่งค่า token มาตัว controllers ก็จะไม่ทำงานโดยเพิ่มดังโค้ด
    Joomla\CMS\Factory::getSession()->checkToken() or die('Invalid Token');​

           เมื่อเรามีการสร้างฟอร์มเพื่อป้องกันการโจมตีแบบ CSRF แล้วก็สามารถป้องกันพวกแฮ็กเกอร์ได้แล้วเพราะถ้าหากฟอร์มนั้นไม่ส่งตัว token มาตัว controllers ก็จะไม่ทำงานและจะไม่อนุญาติให้ใช้งานได้

 

ช่องทางการศึกษาเพิ่มเติมข่าวที่น่าสนใจเกี่ยวกับ : Joomla

 

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
บอร์ด Mindphp.com ตอนนี้ อัพเกรด phpBB จาก 3.1 เป็น 3.2 แล้วนะ
โดย mindphp พ 13 พ.ย. 2019 4:54 am บอร์ด MindPHP News
0
12
พ 13 พ.ย. 2019 4:54 am โดย mindphp
ติดตั้งโมดูลใน joomla 2.5 แล้ว erorr
โดย jamepiyawat อ 12 พ.ย. 2019 8:04 pm บอร์ด Joomla Development
3
34
อ 12 พ.ย. 2019 8:49 pm โดย mindphp
การใช้ confirm() ของ Javascript เพื่อ แจ้งเตือน ให้กดยืนยัน ก่อนทำการ ลบข้อมูล
โดย bankjittapol อ 12 พ.ย. 2019 7:12 pm บอร์ด Jquery & Ajax Knowledge
0
11
อ 12 พ.ย. 2019 7:12 pm โดย bankjittapol
ภาพ thailand-football-team
โดย numtan5839 อ 12 พ.ย. 2019 7:10 pm บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
2
11
อ 12 พ.ย. 2019 7:28 pm โดย numtan5839
การใช้ Domvas library แปลง code html แปลงหน้าเว็บ เป็นรูปภาพ
โดย bankjittapol อ 12 พ.ย. 2019 6:43 pm บอร์ด Jquery & Ajax Knowledge
0
8
อ 12 พ.ย. 2019 6:43 pm โดย bankjittapol
B - ต้องการสร้างใบcustomer paymentเมื่อใส่ข้อมูลที่withholding tax ไม่สามารถทำได้
โดย nnamfon.26 อ 12 พ.ย. 2019 6:20 pm บอร์ด M.D.Soft Co.,Ltd. - Tester
0
6
อ 12 พ.ย. 2019 6:20 pm โดย nnamfon.26
รู้จักกับ soil moisture sensor
โดย chaiyasitpraphut อ 12 พ.ย. 2019 5:12 pm บอร์ด IOT - Internet of things
0
10
อ 12 พ.ย. 2019 5:12 pm โดย chaiyasitpraphut
PIR Motion Sensor module คืออะไร
โดย chaiyasitpraphut อ 12 พ.ย. 2019 4:51 pm บอร์ด IOT - Internet of things
0
7
อ 12 พ.ย. 2019 4:51 pm โดย chaiyasitpraphut
แปลง code html เป็น image แต่ไม่แสดงผลลัพธ์
โดย bankjittapol อ 12 พ.ย. 2019 4:44 pm บอร์ด JavaScript & Jquery Ajax
4
21
พ 13 พ.ย. 2019 5:29 am โดย mindphp
วิธีการลงทุนที่ดีที่สุดสำหรับ "มนุษย์เงินเดือน"
โดย somying อ 12 พ.ย. 2019 4:09 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
12
อ 12 พ.ย. 2019 4:09 pm โดย somying
เปิดและปิดไฟ LED ด้วย Blynk
โดย chaiyasitpraphut อ 12 พ.ย. 2019 4:01 pm บอร์ด IOT - Internet of things
0
11
อ 12 พ.ย. 2019 4:01 pm โดย chaiyasitpraphut
เปิดและปิดไฟด้วยเซนเซอร์ตรวจจับความเคลื่อนไหว
โดย chaiyasitpraphut อ 12 พ.ย. 2019 3:20 pm บอร์ด IOT - Internet of things
0
11
อ 12 พ.ย. 2019 3:20 pm โดย chaiyasitpraphut
ส่วนประกอบ Arduino UNO R3
โดย chaiyasitpraphut อ 12 พ.ย. 2019 2:42 pm บอร์ด IOT - Internet of things
0
8
อ 12 พ.ย. 2019 2:42 pm โดย chaiyasitpraphut
VDO - Program Exchange Rate
โดย numtan5839 อ 12 พ.ย. 2019 2:42 pm บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
1
11
อ 12 พ.ย. 2019 3:36 pm โดย thatsawan
การใส่ค่าในช่อง input ด้วย javascript เพื่อจะได้มีค่าอยู่ใน textbox
โดย jamepiyawat อ 12 พ.ย. 2019 2:37 pm บอร์ด Jquery & Ajax Knowledge
0
9
อ 12 พ.ย. 2019 2:37 pm โดย jamepiyawat
วิธีต่อ Nodemcu Esp8266 กับ Sensor ตรวจวัดอุณหภูมิและความชื้น DHT11
โดย chaiyasitpraphut อ 12 พ.ย. 2019 2:23 pm บอร์ด IOT - Internet of things
0
10
อ 12 พ.ย. 2019 2:23 pm โดย chaiyasitpraphut
VDO - Program Check Tracking Thailand Post
โดย numtan5839 อ 12 พ.ย. 2019 2:12 pm บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
1
8
อ 12 พ.ย. 2019 3:36 pm โดย thatsawan
โครงสร้างของภาษา php
โดย chaiyasitpraphut อ 12 พ.ย. 2019 1:38 pm บอร์ด MT35 - นายชัยยะสิทธิ์ พระพุทธ
0
6
อ 12 พ.ย. 2019 1:38 pm โดย chaiyasitpraphut
การเชื่อมต่อฐานข้อมูลด้วย php
โดย chaiyasitpraphut อ 12 พ.ย. 2019 12:08 pm บอร์ด MT35 - นายชัยยะสิทธิ์ พระพุทธ
2
14
อ 12 พ.ย. 2019 12:59 pm โดย chaiyasitpraphut
VDO - Square Root Calculate Program
โดย numtan5839 อ 12 พ.ย. 2019 11:57 am บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
2
10
อ 12 พ.ย. 2019 2:45 pm โดย numtan5839