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

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

การใช้งาน 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 ใช้ได้เลย

 

 

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
ผู้รู้ ขอความอนุเคราะห์แก้ code ให้หน่อย
โดย goobot_com จ 23 เม.ย. 2018 10:22 pm บอร์ด Programming - PHP
0
3
จ 23 เม.ย. 2018 10:22 pm โดย goobot_com
แก้ code ให้หน่อย while(list($key, $value) = each ไม่ทำงาน เปลี่ยนเป็น foreach($_POST[id2] as $key =>$value)แล้วไม่ได้
โดย goobot_com จ 23 เม.ย. 2018 10:20 pm บอร์ด Programming - PHP
0
5
จ 23 เม.ย. 2018 10:20 pm โดย goobot_com
while(list($key, $value) = each ไม่ทำงาน เปลี่ยนเป็น foreach($_POST[id2] as $key => $value)
โดย Anonymous จ 23 เม.ย. 2018 10:14 pm บอร์ด Programming - PHP
0
4
จ 23 เม.ย. 2018 10:14 pm โดย บุคคลทั่วไป
จะทำให้เว็บฟอรั่มออนไลน์ได้ไหมครับ?
โดย Anonymous จ 23 เม.ย. 2018 1:52 pm บอร์ด Programming - PHP
0
11
จ 23 เม.ย. 2018 1:52 pm โดย บุคคลทั่วไป
รูปแบบการทำงานของ NAT มีอะไรบ้าง
โดย Patcharanan.0399 ศ 20 เม.ย. 2018 5:14 pm บอร์ด Share Knowledge
0
45
ศ 20 เม.ย. 2018 5:14 pm โดย Patcharanan.0399
ส่วนที่ไม่เข้าใจในบทความ Module MD Client History
โดย alisa93 ศ 20 เม.ย. 2018 4:56 pm บอร์ด Mobile Programming - Android, iOS, Window Phone
2
26
ศ 20 เม.ย. 2018 5:56 pm โดย alisa93
Loopback คืออะไร
โดย Patcharanan.0399 ศ 20 เม.ย. 2018 4:21 pm บอร์ด Share Knowledge
0
30
ศ 20 เม.ย. 2018 4:21 pm โดย Patcharanan.0399
สอบถามเรื่อง SQL การ SELECT id
โดย AePongsak ศ 20 เม.ย. 2018 4:21 pm บอร์ด SQL - Database
5
69
ศ 20 เม.ย. 2018 5:05 pm โดย AePongsak
Q - ติดตั้งโมดูลแล้วไฟล์ภาษาหาย
โดย Parichat ศ 20 เม.ย. 2018 3:52 pm บอร์ด Joomla Development
2
28
ศ 20 เม.ย. 2018 4:20 pm โดย Parichat
Q - ทำ Drop Down ในหน้าผู้ดูแลระบบของโมดูล
โดย Parichat ศ 20 เม.ย. 2018 1:22 pm บอร์ด Joomla Development
13
72
จ 23 เม.ย. 2018 3:57 pm โดย tsukasaz
ผมสงใสทำไมรีโมทแอร์ ทำไมถึงต้องอยุ่ข้างประตู
โดย nuattawoot ศ 20 เม.ย. 2018 12:58 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
2
59
ศ 20 เม.ย. 2018 9:47 am โดย tsukasaz
Normal Form ของ Normalization มีอะไรบ้าง
โดย Patcharanan.0399 พฤ 19 เม.ย. 2018 6:37 pm บอร์ด Share Knowledge
0
22
พฤ 19 เม.ย. 2018 6:37 pm โดย Patcharanan.0399
Q - import ฐานข้อมูลมาแต่ Error
โดย Parichat พฤ 19 เม.ย. 2018 5:55 pm บอร์ด SQL - Database
2
40
พฤ 19 เม.ย. 2018 6:43 pm โดย Parichat
ทำไมต้องมี IPv6 ....?
โดย Patcharanan.0399 พฤ 19 เม.ย. 2018 3:04 pm บอร์ด Share Knowledge
0
33
พฤ 19 เม.ย. 2018 3:04 pm โดย Patcharanan.0399
ต้องการใส่เสียงลงใน application
โดย Oley Rujisak พฤ 19 เม.ย. 2018 1:12 pm บอร์ด Mobile Application Developing- Android, iOS
0
23
พฤ 19 เม.ย. 2018 1:12 pm โดย Oley Rujisak
มาแล้ว Joomla 3.8.7 อัพเดทล่าสุด แก้ไข Bug ต่างๆ และปรับปรุงระบบให้ดีขึ้น
โดย tsukasaz พฤ 19 เม.ย. 2018 11:09 am บอร์ด PHP News
0
32
พฤ 19 เม.ย. 2018 11:09 am โดย tsukasaz
3-way Handshake (ทรีเวย์ แฮนเชค)คืออะไร
โดย Patcharanan.0399 พ 18 เม.ย. 2018 6:04 pm บอร์ด Share Knowledge
0
33
พ 18 เม.ย. 2018 6:04 pm โดย Patcharanan.0399
TCP (ทีซีพี) และ UDP (ยูดีพี) แตกต่างกันอย่างไร
โดย Patcharanan.0399 พ 18 เม.ย. 2018 5:46 pm บอร์ด Share Knowledge
1
50
พฤ 19 เม.ย. 2018 3:50 am โดย mindphp
ICMP Protocol (ไอซีเอ็มพี โปรโตคอล) คืออะไร
โดย Patcharanan.0399 พ 18 เม.ย. 2018 5:24 pm บอร์ด Share Knowledge
0
27
พ 18 เม.ย. 2018 5:24 pm โดย Patcharanan.0399
ไม่สามารถติดตั้ง selenium v.2.9.1 ได้
โดย Patcharanan.0399 พ 18 เม.ย. 2018 4:35 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
7
60
พฤ 19 เม.ย. 2018 3:45 am โดย mindphp