Score:0

ลำดับของการดำเนินการกับการตรวจสอบความถูกต้องของคุกกี้ไปยังไซต์ Drupal

ธง jp

มีไซต์ drupal 9 ที่มี REST-endpoint ที่สามารถเข้าถึงได้สำหรับผู้ใช้ที่เข้าสู่ระบบ (ไม่ใช่สำหรับผู้ใช้ที่ไม่ระบุตัวตน)

และจำเป็นต้องส่งคำขอ GET ไปยังปลายทางโดยใช้การรับรองความถูกต้องของคุกกี้

คุณช่วยอธิบายได้ไหมว่าอัลกอริทึมที่ถูกต้องของคำขอนี้คืออะไร

ฉันพยายามทำสองวิธี

วิธี #1

ส่งคำขอ POST ไปยังผู้ใช้/เข้าสู่ระบบด้วยข้อมูลรับรองและรับโทเค็น CSRF จากนั้นใช้โทเค็นในส่วนหัวของคำขอ GET ไปยังจุดสิ้นสุดของฉัน ไม่มีผลลัพธ์.

วิธี #2

ส่งคำขอ POST ไปยังผู้ใช้/เข้าสู่ระบบด้วยข้อมูลประจำตัว จากนั้นส่งคำขอ GET ไปยังเซสชัน/โทเค็นและรับโทเค็นจาก หลังจากนั้น ใช้โทเค็นนี้จากเซสชัน/โทเค็นในคำขอ GET ของฉัน

นอกจากนี้ยังไม่มีผล

ในทั้งสองกรณี จะส่งคืนข้อผิดพลาด 401 (จาก Insomnia) หรือข้อผิดพลาด 403 (จาก JavaScript ภายนอก)

ส่วนหัวของฉันเพื่อรับคำขอคือ

  ส่วนหัว: {
    'ประเภทเนื้อหา': 'แอปพลิเคชัน/json',
    'X-CSRF-โทเค็น': โทเค็น
  }

มีการตรวจสอบการรับรองความถูกต้องของคุกกี้สำหรับตำแหน่งข้อมูล REST ของฉันใน REST UI

ผมทำอะไรผิดหรือเปล่า?

Kevin avatar
in flag
หากคุณกำลังตรวจสอบคุกกี้ คุณได้ส่งกลับในแต่ละคำขอหรือไม่ มีการเปิดใช้งานเส้นทางสำหรับการตรวจสอบสิทธิ์คุกกี้หรือไม่ https://www.drupal.org/docs/8/core/modules/rest/3-post-for-creating-content-entities
Yakimkin Roman avatar
jp flag
ใช่ เส้นทางเปิดใช้งานสำหรับการตรวจสอบสิทธิ์คุกกี้ นี่คือคำอธิบาย: วิธีการ: รับ รูปแบบ: json การรับรองความถูกต้อง: basic_auth, คุกกี้ เกี่ยวกับการส่งคุกกี้กลับ - ไม่ ฉันกำลังส่งโทเค็น ส่งคืนการดึงข้อมูล (calcUrl, { วิธีการ: 'รับ', ส่วนหัว: { 'ประเภทเนื้อหา': 'แอปพลิเคชัน/json', 'X-CSRF-โทเค็น': โทเค็น } }) })
cn flag
ลองส่งคุกกี้กลับด้วย
Score:1
ธง ph

คุณต้องอ้างอิงคุกกี้ที่เก็บไว้ นี่คือตัวอย่างการใช้ curl:

curl --header "Content-type: application/json" --request POST -s -c cookie.txt --data-binary '{ "name": "username", "pass": "password" }' https: //example.com/user/login

จากนั้นคุณจะได้รับคุกกี้ของคุณใน cookie.txt และโทเค็นของคุณในการตอบกลับ json

จากนั้นคุณสามารถรับคำขอเช่นนี้ (รับคำขอไม่จำเป็นต้องใช้โทเค็น CSRF):

curl -s -X GET -b cookie.txt --header 'ประเภทเนื้อหา: แอปพลิเคชัน/json' ...

และขอโพสต์ดังนี้

curl -s -X POST -b cookie.txt --header 'Content-type: application/json' --header "X-CSRF-Token: $token"
Score:1
ธง in

เมื่อจุดสิ้นสุดของคุณต้องการการรับรองความถูกต้องของคุกกี้ คุณควรส่งคุกกี้ที่ได้รับจากโพสต์การเข้าสู่ระบบพร้อมกับคำขอ GET ต่อไปนี้

CSRF ไม่มีส่วนเกี่ยวข้องกับการรับรองความถูกต้อง เป็นเพียงการป้องกันการโจมตี CSRF

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา