การใช้งาน Flask Token (ฟลาซค-โทเค็น) หรือ CSRF Protection (ซี-เอส-อา-เอฟ โพรเทคชัน)  เพื่อเพิ่มความปลอดภัยให้กับเว็บไซต์

การโจมตีแบบ Cross-site Request Forgery หรือ CSRF (ซี-เอส-อา-เอฟ) เป็นเทคนิคการโจมตีเว็บไซต์ที่แฮ็คเกอร์นิยมใช้มากขึ้นเรื่อยๆ ซึ่งเป็นการโจมตีที่ใช้ประโยชน์จากความเชื่อของ wabsite (เว็บไซต์) ที่มีต่อข้อมูล Input (อินพุท) และเบราเซอร์จากผู้ใช้งาน  

Flask Token
Flask Token

ขั้นตอน ใช้งาน Flask Token ภาษา Python

ให้ทำการสร้าง Method Token ขึ้นมาเสียก่อน

ขั้นตอนที่ 1 ทำการ import

import binascii

ขั้นตอนที่ 2

Method ที่1 เป็น Method ใช้เช็ค token หรือ รหัส ascii ว่าตรงกันปล่าวถ้าไม่ตรงกัน ให้ทำการ Return หรือ แจ้งเตือน ผู้ใช้

@app.before_request
def csrf_protect():
    if request.method == "POST":
        token = session.pop('_csrf_token', None)
        if not token or token != request.form.get('_csrf_token'):
            return  'ไม่มีการส่ง Token403'

ขั้นตอนที่ 3

Method ที่2 เป็น Method ที่จะ Generate ตัวเลข หรือ รหัสสุ่ม

def generate_csrf_token():
    m = binascii.hexlify(os.urandom(16))
    if '_csrf_token' not in session:
        session['_csrf_token'] = m
    return session['_csrf_token']

ขั้นตอนที่ 4

สร้าง Keyapp คล้ายๆ key clack

app.secret_key = 'A0Zr98j/3yX R~XHH!jmN]LWX/,?RT'

ขั้นตอนที่ 5 

ให้ไปทำของส่วน Form หรือหน้า HTML ให้ทำการ input

<form method=post action="">
    <input name=_csrf_token type=hidden value="{{ csrf_toke }}">

เป็นการเสร็จในการสร้าง Token ด้วย Flask ตัวอย่างโค๊ด สามารถ coppy ใช้ได้เลย

 

 

หัวเรื่อง
บทเรียนการใช้งาน Flask Token
หมวดหมู่
Python Framework Flask, Python Framework Flask
ฮิต
1550
ผู้สร้างเอกสาร
anawatj
วันที่สร้างเอกสาร
2023-09-25 19:43:12
รายละเอียด

การใช้งาน Flask Token (ฟลาซค-โทเค็น) หรือ CSRF Protection (ซี-เอส-อา-เอฟ โพรเทคชัน)  เพื่อเพิ่มความปลอดภัยให้กับเว็บไซต์

flask-token-or-csrf-protection.zip

ประเภทไฟล์ zip

ขนาดไฟล์ 987 bytes

ผู้อัพโหลดไฟล์ anawatj

วันที่อัพโหลด 2023-09-25 12:40:18


กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
ในฐานะผู้ดูแลระบบ (System Administrator) ก่อนเข้าช่วงหยุดยาว เตรียมตัวแบบนี้เพื่อให้หยุดได้อย่างไร้กังวน
โดย mindphp พฤ 28 ธ.ค. 2023 12:20 pm บอร์ด Linux - Web Server
0
607
พฤ 28 ธ.ค. 2023 12:20 pm โดย mindphp View Topic ในฐานะผู้ดูแลระบบ (System Administrator) ก่อนเข้าช่วงหยุดยาว เตรียมตัวแบบนี้เพื่อให้หยุดได้อย่างไร้กังวน
แก้ปัญหา Google Chrome เข้าหน้าเว็บไม่ได้ขึ้น ERROR SSL Key แต่ใช้ browser ตัวอื่นเข้าได้หมด
โดย mindphp พฤ 28 ธ.ค. 2023 7:11 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
362
พฤ 28 ธ.ค. 2023 7:11 am โดย mindphp View Topic แก้ปัญหา Google Chrome เข้าหน้าเว็บไม่ได้ขึ้น ERROR SSL Key แต่ใช้ browser ตัวอื่นเข้าได้หมด
ทำไมการย้ายโดเมนมักแนะนำให้ดำเนินการก่อนหมดอายุ 30 วัน มาดูรายละเอียดกัน Domain Tranfer มีกี่ขั้นตอน
โดย mindphp พฤ 28 ธ.ค. 2023 6:54 am บอร์ด Microsoft Office Knowledge & line & Etc
0
449
พฤ 28 ธ.ค. 2023 6:54 am โดย mindphp View Topic ทำไมการย้ายโดเมนมักแนะนำให้ดำเนินการก่อนหมดอายุ 30 วัน มาดูรายละเอียดกัน Domain Tranfer มีกี่ขั้นตอน
วิธีแชร์ภาพจาก Canva ไปที่ Facebook Page
โดย vibeday พฤ 28 ธ.ค. 2023 12:42 am บอร์ด Microsoft Office Knowledge & line & Etc
0
373
พฤ 28 ธ.ค. 2023 12:42 am โดย vibeday View Topic วิธีแชร์ภาพจาก Canva ไปที่ Facebook Page
โฆษณา LINE ทางเลือกใหม่ของแบรนด์ในยุคออนไลน์
โดย admeadme พ 27 ธ.ค. 2023 3:38 pm บอร์ด Share Knowledge
0
400
พ 27 ธ.ค. 2023 3:38 pm โดย admeadme View Topic โฆษณา LINE ทางเลือกใหม่ของแบรนด์ในยุคออนไลน์
คำสั่ง SQL วิธีแปลงค่าตัวเลข เช่น 1703618219 ซึ่งเป็นค่า Unix timestamp (จำนวนวินาทีนับตั้งแต่วันที่ 1 มกราคม ค.ศ. 1970)
โดย mindphp พ 27 ธ.ค. 2023 1:12 pm บอร์ด SQL Knowledge
0
1790
พ 27 ธ.ค. 2023 1:12 pm โดย mindphp View Topic คำสั่ง SQL วิธีแปลงค่าตัวเลข เช่น 1703618219 ซึ่งเป็นค่า Unix timestamp (จำนวนวินาทีนับตั้งแต่วันที่ 1 มกราคม ค.ศ. 1970)
สอบถามกดดูตารางใน phpmyadmin แล้วขึ้น error #1932 - Table 'table_name' doesn't exist in engine
โดย eange08 พ 27 ธ.ค. 2023 12:29 pm บอร์ด SQL - Database
7
3597
พ 27 ธ.ค. 2023 1:39 pm โดย eange08 View Topic สอบถามกดดูตารางใน phpmyadmin แล้วขึ้น error #1932 - Table 'table_name' doesn't exist in engine
R - mdsoft_jnk_delete_sale_purchase_sql - ลบประวัติเก่าๆ
โดย MBMoo พ 27 ธ.ค. 2023 9:33 am บอร์ด JNK - Developer
0
3
พ 27 ธ.ค. 2023 9:33 am โดย MBMoo View Topic R -   mdsoft_jnk_delete_sale_purchase_sql - ลบประวัติเก่าๆ