ให้เรตสมาชิก: 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

 

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
การใช้ text-align เพื่อจัดข้อความ
โดย bankjittapol ศ 22 พ.ย. 2019 6:28 pm บอร์ด CSS Knowledge
0
3
ศ 22 พ.ย. 2019 6:28 pm โดย bankjittapol
อยากทราบคำสั่ง joomla ที่จะทำให้ย่อยรูปได้ครับ
โดย jamepiyawat ศ 22 พ.ย. 2019 5:53 pm บอร์ด Joomla Development
0
5
ศ 22 พ.ย. 2019 5:53 pm โดย jamepiyawat
วิธีการการใช้งาน jquery เพื่อปรับเปลี่ยนค่า css ให้กับปุ่มเมื่อมีการคลิก
โดย Ittichai_chupol ศ 22 พ.ย. 2019 5:41 pm บอร์ด Jquery & Ajax Knowledge
0
3
ศ 22 พ.ย. 2019 5:41 pm โดย Ittichai_chupol
การใส่ Intro Outro และการตัดต่อ VDO ด้วยโปรแกรม โปรแกรม Sony Vagas Pro
โดย numtan5839 ศ 15 พ.ย. 2019 1:41 pm บอร์ด Graphic design
0
6
ศ 15 พ.ย. 2019 1:41 pm โดย numtan5839
ข้อดีข้อเสียของ SAP
โดย kanchanok พฤ 05 เม.ย. 2018 9:31 am บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
1
2220
ศ 22 พ.ย. 2019 4:57 pm โดย mindphp
วิธีการเปลี่ยนการแสดงผล ส่วนการจัดการกระทู้ที่ติดตาม ของ phpbb
โดย Ittichai_chupol ศ 22 พ.ย. 2019 4:07 pm บอร์ด PHP Knowledge
0
5
ศ 22 พ.ย. 2019 4:07 pm โดย Ittichai_chupol
.net ถ้าจะใช้ Entity Framework โดยไม่ต้องลงตัว Oracle Data Access Client (ODAC)
โดย jataz2 ศ 22 พ.ย. 2019 3:23 pm บอร์ด Programming - C/C++ & java & Python
0
9
ศ 22 พ.ย. 2019 3:23 pm โดย jataz2
โปรแกรมหาค่าเฉลี่ย, ค่าแปรปรวน และค่าเบี่ยงเบนมาตรฐาน
โดย prmindphp ศ 22 พ.ย. 2019 10:40 am บอร์ด MindPHP News / Feedback
0
17
ศ 22 พ.ย. 2019 10:40 am โดย prmindphp
โปรแกรมคำนวณสแควรูท - โปรแกรมช่วยหาค่า รากที่ สอง สาม สี่... ของจำนวนที่ต้องการ
โดย prmindphp ศ 22 พ.ย. 2019 10:23 am บอร์ด MindPHP News / Feedback
0
37
ศ 22 พ.ย. 2019 10:23 am โดย prmindphp
พาสปอร์ตด่วนพิเศษ บินไวไฟลุก จ่าย 3,000.- รับเล่มภายในไม่กี่ชั่วโมง
โดย promotion ศ 22 พ.ย. 2019 10:19 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
8
ศ 22 พ.ย. 2019 10:19 am โดย promotion
งานประจำวันที่ 22 พฤศจิกายน 2562
โดย numtan5839 ศ 22 พ.ย. 2019 9:36 am บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
6
24
ศ 22 พ.ย. 2019 6:58 pm โดย numtan5839
บันทึกการประชุม OpenERP MD-ERP
โดย rinrada ส 04 ก.พ. 2017 11:52 am บอร์ด OpenERP - MD-ERP (Main)
26
173
พฤ 21 พ.ย. 2019 6:56 pm โดย thatsawan
การใช้ ฟังก์ชัน hsl() และ hsal () กำหนดค่าของสี
โดย bankjittapol พฤ 21 พ.ย. 2019 6:55 pm บอร์ด CSS Knowledge
0
24
พฤ 21 พ.ย. 2019 6:55 pm โดย bankjittapol
วิธีการแยกตัวอักษรเข้าอาร์เรย์ (Array) แต่ล่ะอาร์เรย์ ด้วยคำสั่ง split
โดย jamepiyawat พฤ 21 พ.ย. 2019 6:50 pm บอร์ด Jquery & Ajax Knowledge
0
20
พฤ 21 พ.ย. 2019 6:50 pm โดย jamepiyawat
วิธีการดึงค่าเฉพาะค่าสุดท้ายของ class แม้ว่าจะมี class ชื่อเหมือนกัน หลายคลาส โดย javascript
โดย Ittichai_chupol พฤ 21 พ.ย. 2019 6:39 pm บอร์ด Jquery & Ajax Knowledge
0
27
พฤ 21 พ.ย. 2019 6:39 pm โดย Ittichai_chupol
การติดตั้ง wkhtmltopdf ด้วย terminal บน ubuntu
โดย jirawoot พฤ 27 มิ.ย. 2019 4:00 pm บอร์ด Linux - Web Server
3
719
พฤ 21 พ.ย. 2019 2:49 pm โดย mindphp
การปรับแก้ไข(Overrides) Modules ใน Template
โดย bankjittapol พฤ 21 พ.ย. 2019 2:36 pm บอร์ด Joomla Developing Knowledge
0
19
พฤ 21 พ.ย. 2019 2:36 pm โดย bankjittapol
wkhmtltopdf คืออะไร
โดย jirawoot พ 03 ก.ค. 2019 6:35 pm บอร์ด Share Knowledge
1
229
พฤ 21 พ.ย. 2019 2:34 pm โดย mindphp
อัพเกรด wkhtmltopdf บน Ubuntu 16.04
โดย mindphp พฤ 21 พ.ย. 2019 2:33 pm บอร์ด Linux - Web Server
0
18
พฤ 21 พ.ย. 2019 2:33 pm โดย mindphp
VDO - โปรแกรมแปลงพื้นที่
โดย numtan5839 พฤ 21 พ.ย. 2019 1:59 pm บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
4
29
ศ 22 พ.ย. 2019 6:40 pm โดย numtan5839