URL สำหรับการเข้าสู่ระบบของผู้ใช้คืออะไร (aka วิธีซ่อนฟอร์มการเข้าสู่ระบบ)


10

ฉันไม่ต้องการอนุญาตให้ผู้เยี่ยมชมลงทะเบียนบนเว็บไซต์ของฉัน; อย่างไรก็ตามฉันพบว่าจำเป็นต้องมีผู้ใช้ที่ลงทะเบียนเพียงรายเดียวเพื่อการทดสอบ ตัวอย่างเช่นฉันจะเผยแพร่บทความที่มีการ จำกัด การเข้าถึงเพื่อให้ผู้ใช้ทดสอบของฉันสามารถดูว่าบทความมีลักษณะอย่างไรบนเว็บไซต์โดยไม่ต้อง "ซักผ้าสกปรกใด ๆ " ให้กับบุคคลทั่วไป (ตกลง 1 / วันที่เข้าชม ... จริง ๆ ) .

ปัญหาของฉันในตอนนี้คือฉันลงเอย defacing เว็บไซต์เนื่องจากฉันต้องเผยแพร่ / ยกเลิกการเผยแพร่ฟอร์มการเข้าสู่ระบบของผู้ใช้ ขณะนี้ฉัน 'หลีกเลี่ยง' ปัญหานี้โดยการซ่อนฟอร์มการเข้าสู่ระบบในหมวดหมู่ย่อยเพื่อไม่ให้ผู้เข้าชมทั่วไปมองเห็นได้ในทันที เป็นไปได้ไหมที่จะสร้างวิธีอื่น (เช่น URL ที่กำหนดเอง) ที่จะทำให้ผู้ใช้ทดสอบของฉันดูเนื้อหาที่ถูกทำเครื่องหมายว่าถูก จำกัด โดยไม่ต้องเปลี่ยนสิ่งที่แขกที่มีการเข้าถึงสาธารณะจะเห็น?

คำตอบ:


8

คุณสามารถสร้างเมนูที่ไม่ได้เผยแพร่และใส่ลิงค์ไปยังหน้าเข้าสู่ระบบของผู้ใช้ที่นั่นและตั้งชื่อแทนสิ่งที่คุณต้องการ ตราบใดที่คุณปิดฟังก์ชั่นอนุญาตให้ลงทะเบียนในตัวเลือกผู้จัดการผู้ใช้คุณก็น่าจะดี

จากนั้นให้ URL แก่ลูกค้าของคุณ

ดังนั้นขั้นตอนคือ:

  1. สร้างเมนูใหม่ตั้งชื่อซ่อน
  2. อย่าเผยแพร่โมดูลของเมนูใหม่
  3. เพิ่มรายการเมนูใหม่เลือกผู้ใช้จัดการและแบบฟอร์มการเข้าสู่ระบบ
  4. ตั้งชื่อรายการเมนูเข้าสู่ระบบหรือบางสิ่งบางอย่างเพื่อให้คุณรู้ว่ามันคืออะไร แต่เปลี่ยนนามแฝงเป็นสิ่งที่บางคนไม่คาดเดา
  5. ทดสอบแบบฟอร์มของคุณโดยไปที่ yoursite.com/aliasname

10

ในฐานะที่เป็นส่วนขยายของคำตอบของ Brian Peat:

ถ้าคุณไปที่ URL

domain.com/index.php?option=com_users&view=login

คุณสามารถเข้าสู่ระบบโดยไม่ต้องมีชุดรายการเมนูหรือปัญหาการเผยแพร่ / การเผยแพร่ใด ๆ สิ่งนี้อาจเรียกได้ว่าเป็นปัญหาอย่างหนึ่งใน Joomla เมื่อคุณรู้ว่ารอบตัวคุณยังสามารถลงทะเบียน / เข้าสู่ระบบได้หากคุณรู้โครงสร้าง URL มีกฎเพื่อป้องกันสิ่งนี้ แต่โดยปกติแล้วคุณสามารถใช้เส้นทางตรงแบบนั้นเพื่อไปยังที่ที่คุณต้องไป

http://www.joomla.org/index.php?option=com_users&view=login

ที่นี่ใช้งานได้แม้กระทั่งไซต์ Joomla หลักที่ไม่สามารถเข้าถึงการเข้าสู่ระบบโดยตรงได้

จุดของฉันคือให้แน่ใจว่าคุณใช้ ACL ที่เหมาะสมเช่นกันหากผู้ใช้ที่ลงทะเบียน "เพียง" แล้วใครก็ตามที่รู้ว่าโครงสร้างของ Joomla สามารถเข้าไปได้เช่นเดียวกับที่ Brian ได้กล่าวไว้


มี URL แบบแอนะล็อกสำหรับ /index.php?option=com_users&view=logout (ซึ่งฉันคิดว่าใช้งานง่าย แต่กลับกลายเป็นว่าไม่ถูกต้อง)
bobthechemist

คุณต้องการออกจากระบบโดยอัตโนมัติหรือไม่ มันค่อนข้างแปลกการออกจากระบบใน joomla ต้องมีข้อมูลโพสต์ดังนั้นรูปแบบ / ปุ่ม ลิงก์นั้นจะพาคุณไปยังปุ่มโดยทั่วไป
Jordan Ramstad

หากคุณกังวลเกี่ยวกับคนที่เข้ามาในหน้านั้นจริงๆคุณสามารถติดตั้งปลั๊กอินแฟนซีที่บังคับให้ผู้ใช้ใช้โทเค็นเป็นส่วนหนึ่งของ URL (ฉันรู้ว่ามีหนึ่งสำหรับผู้ดูแลระบบค่อนข้างแน่ใจว่ามีอยู่ข้างหน้า สิ้นสุด) ... แต่คุณสามารถติดตั้งส่วนขยายนี้ได้: Extensions.joomla.org/extensions/access-a-security/ …ซึ่งจะบล็อก IP หากผู้ใช้พยายามพูดว่า 10 ครั้งเพื่อเข้าสู่ระบบนอกจากนี้ยังแจ้งให้คุณทราบด้วย มันจะเปิดตาให้เห็นว่าไซต์ของคุณถูกโจมตีบ่อยแค่ไหน ฉันสังเกตเห็น 100% ของความพยายามทั้งหมดใช้ "admin" เป็นชื่อผู้ใช้ด้วย
Brian Peat

ฉันแค่อยากจะบอกว่าถึงแม้จะไม่มีรายการเมนูการเข้าสู่ระบบ / การลงทะเบียนก็ยังสามารถเข้าถึงได้ ดังนั้นหากมีความจำเป็นในการเข้าสู่ระบบโดยไม่ต้องจัดการกับรายการเมนูเป็นไปได้ แต่ก็หมายความว่าทุกคนสามารถทำได้ หากการลงทะเบียนไม่ถูกล็อคผู้ใช้ทุกคนสามารถสร้างบัญชีและเข้าถึงหน้า "ความลับ" ใด ๆ ได้ซึ่งอาจมีหากไม่มี ACL เพื่อป้องกัน สิ่งนี้สามารถทำได้โดยการสร้างกลุ่ม ACL พิเศษและทำให้ผู้ใช้ที่สามารถเข้าถึงได้ในกลุ่มนั้น หน้าคำถามต้องมีกลุ่มนั้นเช่นกัน
Jordan Ramstad

อืม, สิ่งที่ดีคือ ACL ถ้าคุณยังไม่ได้เข้าสู่ระบบฉันเข้าใจว่าคุณไม่สามารถซ่อนหน้าเข้าสู่ระบบสาธารณะโดยไม่ต้องใช้ปลั๊กอินพิเศษ โดยไม่คำนึงถึงยกเว้นการโจมตีด้วยเดรัจฉานหากคุณไม่มีการเข้าสู่ระบบคุณจะไม่สามารถไปได้ไกลนัก ฉันไม่เห็นการใช้งานในสิ่งนี้มากนัก
Brian Peat

4

คุณควรจะทำสิ่งนี้ให้สำเร็จได้โดยการแทนที่เค้าโครงสำหรับแบบฟอร์มการเข้าสู่ระบบส่วนหน้า เพิ่มโค้ด PHP บางส่วนใกล้กับด้านบนของไฟล์เลย์เอาต์ รหัสที่เพิ่มเข้ามานี้จะตรวจสอบพารามิเตอร์ที่กำหนดเองใน URL และค่าเฉพาะ หากมีคนพยายามเข้าถึงหน้าเข้าสู่ระบบผ่านทาง URL ใด ๆ แต่ไม่รวมพารามิเตอร์ที่กำหนดเองและค่าเฉพาะ (เช่นabc = xyz ) แสดงว่ารหัสส่งคืน "การคืนค่า" เพื่อที่เลย์เอาต์ของแบบฟอร์มจะไม่ถูกประมวลผลเพื่อแสดง

ด้วยรหัสนี้ในไฟล์โครงร่างที่แทนที่ผู้ใช้เท่านั้นที่รู้ URL (ที่มีพารามิเตอร์ที่กำหนดเองนี้และค่าที่ยอมรับได้) จะสามารถใช้แบบฟอร์มการเข้าสู่ระบบนั้นได้

ตัวอย่างเช่น: URL ลับสามารถ

mydomain.com/?option=com_users&view=login&abc=xyz

จากนั้นเพิ่มรหัสนี้ใกล้กับด้านบนของไฟล์โครงร่างการเอาชนะสำหรับแบบฟอร์มการเข้าสู่ระบบ:

if(JFactory::getApplication()->input->get('abc')!='xyz'){
    return;
}

ความคิดดี! นี่เป็นวิธีที่ง่ายในการปิดการใช้งานมุมมอง สามารถขยายไปยังโมดูลได้เช่นกันหากต้องการ (แม้ว่าโมดูลนั้นจะไม่มี url โดยตรงในการเข้าถึง)
Jordan Ramstad

3

ฉันมักจะประสบปัญหาที่คล้ายกันเพราะฉันมักต้องการเข้าสู่ระบบ front-end เพื่อแก้ไขเว็บไซต์ที่ฉันจัดการโดยไม่จำเป็นต้องมีแบบฟอร์มเข้าสู่ระบบ ฉันสิ้นสุดการสร้างbookmarkletขนาดเล็ก ที่ฉันเพิ่มลงในแถบเครื่องมือเบราว์เซอร์ของฉัน เห็นได้ชัดว่านี่เป็นวิธีแก้ปัญหา "ท้องถิ่น" อย่างมากเนื่องจาก bookmarklet มีให้ฉันเท่านั้น (หรือใครก็ตามที่ฉันคัดลอกรหัสไป) แต่ใช้ได้บนไซต์ Joomla ใด ๆ และประหยัดเวลาอย่างไม่น่าเชื่อเพียงคลิกลิงค์และแบบฟอร์มเข้าสู่ระบบ จะปรากฏขึ้น (เนื่องจากคุณอยู่บนไซต์ Joomla แน่นอน ... )

 javascript:void((function(){var loc = location.href; loc.indexOf("?") == -1 ? (location.href = loc+"?option=com_users&view=login") : (location.href = loc+"&option=com_users&view=login");})());
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.