Score:2

โทเค็น CSRF ไม่เปลี่ยนแปลงในการเรียกกลับ Ajax ขณะส่งแบบฟอร์ม

ธง us

ฉันมีแบบฟอร์มที่มี ajax callback ดังต่อไปนี้ ในแต่ละโทเค็นการส่งจะไม่แตกต่างกัน มันคงที่สำหรับการส่งทั้งหมด

wall.routing.yml

wall.commentแบบฟอร์ม:
  เส้นทาง: '/commentform'
  ค่าเริ่มต้น:
    _title: 'แบบฟอร์มความคิดเห็น'
    _form: '\Drupal\wall\Form\WallCommentPost'
  ความต้องการ:
    _permission: 'เข้าถึงเนื้อหา'
    _csrf_token: 'จริง'

ในจากดังต่อไปนี้

WallCommentPost.php

$ajax = [
  'callback' => [$this, '_wall_comment_ajax_form_post'],
  'wrapper' => 'ประเภทฟิลด์แทนที่ความคิดเห็น',
  'เหตุการณ์' => 'คลิก',
  'ความคืบหน้า' => อาร์เรย์ (
    'type' => 'throbber',
    'ข้อความ' => '',
  )
];

$แบบฟอร์ม['wall_submit'] = [
  '#type' => 'ส่ง',
  '#value' => 'ส่ง',
  '#ajax' => $ajax,
  '#prefix' => '<div class="col-12 p-1 d-flex justify-content-between"><div class="file_name_insert file_name_insert_data-' . $nid . ' pl-4 text-truncate"> </div>',
  '#suffix' => '</div>',
  '#attributes' => อาร์เรย์(
    'คลาส' => อาร์เรย์(
      'บีทีเอ็น',
      $ajax_class,
      'd-ไม่มี'
      'subbtn-' . $ นิด
    ),
    'ปิดการใช้งาน' => 'ปิดใช้งาน'
  ),
];
$url = Url::fromRoute('wall.commentform');
$token = \Drupal::csrfToken()->get($url->getInternalPath());

$form['#action'] = Url::fromRoute('wall.commentform')->setOption('query', [FormBuilderInterface::AJAX_FORM_REQUEST => 1, 'token1' => $token])->toString( );
miststudent2011 avatar
fr flag
ฉันเห็น $token ถูกแสดงความคิดเห็น มันจงใจหรือไม่ หรือคุณพลาดมัน?
Monika avatar
us flag
ตามค่าเริ่มต้น URL นั้นสร้างโทเค็นเอง ฉันเพิ่งทดสอบด้วยวิธีนี้โดยเพิ่มโทเค็นอย่างเข้มงวด แต่ก็ยังยังคงเป็นค่าคงที่
Jaypan avatar
de flag
ฉันไม่เข้าใจสิ่งที่คุณพยายามทำ ฉันเห็นได้ว่าคุณกำลังพยายามทำมันอย่างไร แต่ฉันไม่เข้าใจว่าเป้าหมายของคุณคืออะไร หรืออะไรได้ผลตรงกันข้ามกับที่คาดไว้ ข้อมูลไม่เพียงพอ
miststudent2011 avatar
fr flag
อาจช่วยได้ https://drupal.stackexchange.com/a/268262/ ?
Monika avatar
us flag
โทเค็น CSRF ควรแตกต่างกันไปในแต่ละคำขอส่ง นั่นคือเป้าหมายของฉัน ณ ตอนนี้ โทเค็น CSRF ที่ส่งผ่านใน URL ยังคงไม่เปลี่ยนแปลง วิธีเปลี่ยนค่าโทเค็นในแต่ละคำขอส่ง
Score:0
ธง fr

หลังจากการขุดเพิ่มเติมพบว่าสาเหตุของโทเค็น CSRF ไม่แตกต่างกัน

โทเค็น CSRF ขึ้นอยู่กับเซสชันดังนั้นจนกว่าเซสชันจะเหมือนกัน โทเค็น CSRF จะยังคงเหมือนเดิม

ออกจากระบบและเข้าสู่ระบบอีกครั้งและส่งแบบฟอร์ม คุณจะได้รับโทเค็นใหม่

มี ปัญหา รายงานใน Drupal.org เหมือนกันแม้ว่าจะได้รับการแก้ไขแล้วสำหรับ Drupal 8 แต่ก็ไม่ทำงานตามที่คาดไว้

โพสต์คำตอบ

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