Score:0

จะอนุญาตให้ POST เป็นไฟล์ php ใน apache จากแหล่งกำเนิดเดียวกันได้อย่างไร

ธง jp
Tai

ฉันมีเว็บไซต์ที่มีรูปแบบ HTML ที่ส่งคำขอ POST ไปยังไฟล์ .php บนเซิร์ฟเวอร์สำเร็จ (Apache 2.4.48) เมื่อส่งแล้ว

อย่างไรก็ตาม เมื่อฉันปล่อยให้ Javascript จัดการการส่งผ่านการดึงข้อมูล JS () เซิร์ฟเวอร์ตอบกลับด้วยข้อผิดพลาด 405

ดังนั้นฉันจึงวิเคราะห์ส่วนหัวของคำขอและการตอบกลับสำหรับ POST ทั้งสอง และเกือบจะเหมือนกัน ฉันจึงสับสนว่าทำไมวิธีแรกจึงใช้ได้ผล และอีกวิธีหนึ่งถูกปฏิเสธ

ต่อไปนี้คือคำขอ/การตอบกลับเมื่อส่งผ่านแบบฟอร์ม HTML (เครื่องหมายอัศเจรีย์คือตำแหน่งที่คำขอ POST ต่างกัน):

ทั่วไป
ขอ URL: https://example.com/php/script.php
วิธีการขอ: POST
รหัสสถานะ: 302 
ที่อยู่ระยะไกล: 160.153.133.187:443
นโยบายผู้อ้างอิง: ต้นทาง-เมื่อ-ข้ามต้นทาง


ส่วนหัวของการตอบสนอง
การควบคุมแคช: max-age=0 !
ความยาวเนื้อหา: 0
ประเภทเนื้อหา: text/html; ชุดอักขระ = UTF-8
วันที่: เสาร์ 14 ส.ค. 2564 23:21:34 GMT
หมดอายุ: วันเสาร์ที่ 14 ส.ค. 2021 23:21:34 GMT
สถานที่: https://example.com/pages/form-submitted.html#submitted
เซิร์ฟเวอร์: อาปาเช่
แตกต่างกันไป: User-Agent
x-ขับเคลื่อนโดย: PHP/8.0.8


ขอส่วนหัว
:authority:example.com
: วิธีการ: โพสต์
:path: /php/script.php
: แบบแผน: https
ยอมรับ: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3; คิว=0.9 !
ยอมรับการเข้ารหัส: gzip, deflate, br
ภาษาที่รองรับ: en-GB,en;q=0.9,es-ES;q=0.8,es;q=0.7,it-IT;q=0.6,it;q=0.5
การควบคุมแคช: ไม่มีแคช
ความยาวเนื้อหา: 96
ประเภทเนื้อหา: แอปพลิเคชัน/x-www-form-urlencoded !
dnt: 1
ที่มา: https://example.com
Pragma: ไม่มีแคช
ผู้อ้างอิง: https://example.com/contact
วินาที-ch-ua: "Chromium";v="92", " ไม่ใช่ A;Brand";v="99", "Google Chrome";v="92"
วินาที-ch-ua-มือถือ: ?0
วินาทีดึงข้อมูลปลายทาง: เอกสาร !
วินาทีดึงโหมด: นำทาง !
sec-fetch-site: แหล่งกำเนิดเดียวกัน
วินาทีดึงผู้ใช้: ?1
คำขออัปเกรดที่ไม่ปลอดภัย: 1
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML เช่น Gecko) Chrome/92.0.4515.131 Safari/537.36


แบบฟอร์มข้อมูล
ชื่อ:ไทเซ็น
อีเมล: [email protected]
หมายเลขโทรศัพท์: 12345678910
ยินยอมความเป็นส่วนตัว: เปิด
ส่ง: 

ด้านล่างเป็นคำขอ/ตอบกลับเมื่อส่ง POST โดยใช้ fetch():

ทั่วไป
ขอ URL: https://example.com/php/script.php
วิธีการขอ: POST
รหัสสถานะ: 302 
ที่อยู่ระยะไกล: 160.153.133.187:443
นโยบายผู้อ้างอิง: แหล่งกำเนิดเดียวกัน


ส่วนหัวของการตอบสนอง
การควบคุมแคช: max-age=2741
ความยาวเนื้อหา: 0
ประเภทเนื้อหา: text/html; ชุดอักขระ = UTF-8
วันที่: เสาร์ 14 ส.ค. 2564 23:31:44 GMT
หมดอายุ: อา. 15 ส.ค. 2021 00:17:26 GMT
ที่ตั้ง: https://example.com/405
เซิร์ฟเวอร์: อาปาเช่
แตกต่างกันไป: User-Agent
x-ขับเคลื่อนโดย: PHP/8.0.8


ขอส่วนหัว
:authority:example.com
: วิธีการ: โพสต์
:path: /php/script.php
: แบบแผน: https
ยอมรับ: */*
ยอมรับการเข้ารหัส: gzip, deflate, br
ภาษาที่รองรับ: en-GB,en;q=0.9,es-ES;q=0.8,es;q=0.7,it-IT;q=0.6,it;q=0.5
การควบคุมแคช: ไม่มีแคช
ความยาวเนื้อหา: 471
ประเภทเนื้อหา: multipart/form-data; ขอบเขต = ---- WebKitFormBoundary28YayN0mmqwdpQh0
dnt: 1
ที่มา: https://example.com
Pragma: ไม่มีแคช
ผู้อ้างอิง: https://example.com/contact
วินาที-ch-ua: "Chromium";v="92", " ไม่ใช่ A;Brand";v="99", "Google Chrome";v="92"
วินาที-ch-ua-มือถือ: ?0
วินาทีดึงข้อมูลปลายทาง: ว่างเปล่า
โหมดดึงข้อมูลวินาที: แหล่งกำเนิดเดียวกัน
sec-fetch-site: แหล่งกำเนิดเดียวกัน
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML เช่น Gecko) Chrome/92.0.4515.131 Safari/537.36

แบบฟอร์มข้อมูล
ชื่อ:ไทเซ็น
อีเมล: [email protected]
หมายเลขโทรศัพท์: 12345678910
ยินยอมความเป็นส่วนตัว: เปิด
ส่ง:

ฉันควรเปลี่ยนบางอย่างในฝั่งเซิร์ฟเวอร์เพื่ออนุญาตคำขอ POST ไปยังไฟล์นั้นหรือไม่

อย่างไรก็ตาม ฉันต้องการให้รับคำขอ POST จาก JS ที่ฉันเขียนเท่านั้น ไม่ใช่หน่วยงานภายนอก แต่ฉันไม่รู้ว่าต้องทำอย่างไร ฉันลองสิ่งที่ได้รับการแนะนำบน คำตอบนี้แต่ไม่ได้ผล เซิร์ฟเวอร์ให้ข้อผิดพลาด 500 ฉันคิดว่าอาจเป็นเพราะฉันใช้แผนการโฮสต์ที่ใช้ร่วมกันและฉันไม่สามารถเข้าถึงการตั้งค่า Apache ได้อย่างเต็มที่ แต่ฉันไม่มั่นใจว่านี่คือสาเหตุ

Michael Hampton avatar
cz flag
สิ่งแรกที่ต้องทำคือออกจากแผนโฮสติ้งที่ใช้ร่วมกันและรับเซิร์ฟเวอร์ของคุณเอง
Tai avatar
jp flag
Tai
แต่เป็นโซลูชันที่มีราคาแพงกว่าสำหรับการโฮสต์เว็บไซต์คงที่อย่างง่ายด้วยแบบฟอร์มการติดต่อเดียว

โพสต์คำตอบ

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