Score:1

จำกัดการเข้าถึง URL เฉพาะด้วย .htaccess

ธง vn

สวัสดี ฉันใช้เซิร์ฟเวอร์กับ xenforo ฉันต้องการทราบว่าฉันจะจำกัด url จาก .htaccess ได้อย่างไร

URL คือ: https://mywebiste.com/index.php?members/find&q=oi%5Bp%5C&_xfRequestUri=%2Findex.php%3Fmembers%2F&_xfWithData=1&_xfToken=1648216864%2C89d40e7bf50a91b8a62f9fe448c5d1f3&_xfResponseType=json

มีการฉีด sql ดังนั้นมันจึงคิดว่าแค่บล็อกมันจะแก้ไขได้

ฉันพยายามทำสิ่งนี้:

RewriteEngine เปิดอยู่
RewriteRule ^index.php?members/find&q=oi%5Bp%5C&_xfRequestUri=%2Findex.php%3Fmembers%2F&_xfWithData=1&_xfTo
เคน=1648216864%2C89d40e7bf50a91b8a62f9fe448c5d1f3&_xfResponseType=json - [F]

และต่อท้ายด้วย $:

RewriteEngine เปิดอยู่
RewriteRule ^index.php?members/find&q=oi%5Bp%5C&_xfRequestUri=%2Findex.php%3Fmembers%2F&_xfWithData=1&_xfTo
เคน=1648216864%2C89d40e7bf50a91b8a62f9fe448c5d1f3&_xfResponseType=json$ - [F]

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

Score:0
ธง in

โซลูชันที่คุณพยายามใช้จะบล็อกเฉพาะ URL ที่คุณพิมพ์เท่านั้นการเปลี่ยนแปลง URL นี้ในทางใดทางหนึ่ง เช่น การสลับพารามิเตอร์ GET สองตัว หรือการเพิ่มพารามิเตอร์ GET พิเศษ (แม้ว่าจะไม่เกี่ยวข้องก็ตาม) หรือการเพิ่มพารามิเตอร์แฮชแท็กจะทำให้คำขอแตกต่างจาก Apache และเอาชนะการป้องกันของคุณ

แทนที่จะแก้ไข index.php ของคุณเพื่อจัดการคำขออย่างเหมาะสมและทำงานร่วมกับอินพุตของผู้ใช้ได้อย่างปลอดภัย (เช่น คำขอ GET) โดยให้ HTTP403 ไม่ได้รับอนุญาตในกรณีที่มีสิ่งที่น่าสงสัยเข้ามา

mikef0x avatar
vn flag
ขอบคุณสำหรับคำตอบ แต่ฉันใช้ xenforo และฉันไม่มีประสบการณ์กับ php ดังนั้นมันจึงยากสำหรับฉันที่จะทำ
Score:0
ธง kz

เดอะ เขียนกฎใหม่ คำสั่งตรงกับเส้นทาง URL เท่านั้น เพื่อให้ตรงกับสตริงข้อความค้นหา คุณจะต้องเพิ่มเติม เขียนซ้ำ (เงื่อนไข) คำสั่งที่ตรงกับ QUERY_STRING ตัวแปรเซิร์ฟเวอร์

ตัวอย่างเช่น หากต้องการบล็อก URL นั้น:

RewriteCond %{QUERY_STRING} =members/find&q=oi%5Bp%5C&_xfRequestUri=%2Findex.php%3Fmembers%2F&_xfWithData=1&_xfToken=1648216864%2C89d40e7bf50a91b8a62f9fe448c5d1f3&_xfResponse
RewriteRule ^index\.php$ - [F]

เดอะ = คำนำหน้าบน CondPattern (อาร์กิวเมนต์ที่ 2 ถึง เขียนซ้ำ คำสั่ง) ทำให้เป็นการเปรียบเทียบสตริงพจนานุกรม (ตรงทั้งหมด) ไม่ใช่ regex ดังนั้นจึงไม่จำเป็นต้องหลีกเลี่ยงอักขระเมตา regex พิเศษ

อย่างไรก็ตาม URL นี้มีความเฉพาะเจาะจงมาก ไม่ควรบล็อก URL ที่ (ไม่) ตรงกับบาง URL ลวดลาย? แม้ว่าคุณจะตรวจสอบความถูกต้องของค่าพารามิเตอร์ URL ในสคริปต์ฝั่งเซิร์ฟเวอร์ของคุณเพียงพอแล้ว การบล็อก URL ที่เฉพาะเจาะจงเช่นนี้ก็ไม่จำเป็น

mikef0x avatar
vn flag
ขอบคุณสำหรับคำตอบ ฉันจะบล็อก URL ที่ไม่มีรูปแบบทางคณิตศาสตร์ได้อย่างไร
kz flag
@ mikef0x ใช้ regex ขึ้นอยู่กับ "รูปแบบบางอย่าง" ที่คุณทำ/ไม่ต้องการจับคู่

โพสต์คำตอบ

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