วิธีป้อนข้อมูลการเข้าสู่ระบบสำหรับเว็บไซต์จากบรรทัดคำสั่ง linux


25

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

มีวิธีใดที่จะทำให้กระบวนการล็อกอินเป็นอัตโนมัติโดยใช้สคริปต์ทุบตีหรือไม่? สิ่งนี้จะอนุญาตให้ทำการล็อกอินเมื่อทำการบูทเพื่อให้มีอยู่แล้วเมื่อฉันเริ่มเซิร์ฟเวอร์ X


1
คุณอาจจะสามารถเรียกใช้สคริปต์การเข้าสู่ระบบจากACTIONแอตทริบิวต์ของแบบฟอร์มด้วยcurlโดยตรง
terdon

มหาวิทยาลัยหลายแห่งยังมีเครือข่ายที่ใช้ "การรับรองความถูกต้องขององค์กร" (เช่นการใช้ชื่อผู้ใช้ / รหัสผ่านสำหรับการเชื่อมต่อเครือข่ายเองแทนที่จะรอจนกว่าคุณจะพยายามเข้าถึงหน้าเพื่อขอข้อมูลประจำตัว) ความสามารถในการจัดเก็บข้อมูลรับรองเครือข่ายดังกล่าวถูกสร้างขึ้นในระบบปฏิบัติการ นอกจากนี้ยังมีความปลอดภัยมากขึ้นเพราะหมายความว่าเป็นการยากที่ผู้อื่นจะสอดแนมในการเชื่อมต่อของคุณ หากมหาวิทยาลัยของคุณสนับสนุนคุณควรเปลี่ยนมาใช้
Moshe Katz

นอกจากนี้ยังจะช่วยเราหากคุณสามารถให้ตัวอย่าง (ไม่ระบุชื่อ) ของ URL ที่คุณเปลี่ยนเส้นทางไปเมื่อคุณลงชื่อเข้าใช้ (Anonymized ที่นี่หมายความว่าคุณควรลบที่อยู่ MAC และ / หรือที่อยู่ IP ของคุณจาก URL หากมี แต่ปล่อยให้ทุกอย่างอื่นรวมถึงชื่อของมหาวิทยาลัย)
Moshe Katz

คำตอบ:


16

คุณสามารถลองด้วยcurlคุณสามารถใช้ curl เช่นนี้เพื่อเข้าสู่หน้าเว็บ:

curl --user name:password http://somesite.com -v 

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

    curl -b cookies.txt -c cookies.txt --data "Username=xx&Password=xx&Login=Login" [urlthatyour form submits]

คุณต้องการคุกกี้ถ้าคุณต้องการที่จะทำการร้องขอ curl อื่นหลังจากที่เข้าสู่ระบบ ID เซสชั่นในคุกกี้จะช่วยให้การร้องขอ Curl ต่อไปได้รับอนุญาต

หากคุณไม่ต้องการคุกกี้คุณสามารถใช้

curl --data "Username=xx&Password=xx&Login=Login" [url that your form submits]

คุณสามารถอ้างอิงเพิ่มเติมได้ที่นี่สำหรับคำสั่งพิเศษ


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

@Tim เพิ่มวิธีส่งข้อมูลโดยปกติคุณจะต้องค้นหาว่าหน้าใดที่หน้าร้องขอ (หรือค่าการกระทำของหน้า)
Blueberry - Vignesh4303

นี่ฟังดูราวกับว่ามันสามารถทำงานได้ แต่น่าเศร้าที่มันไม่ได้ เมื่อดูผลลัพธ์ของ curl แสดงให้เห็นว่าUsernameฟิลด์นั้นถูกเติมอย่างถูกต้องด้วยค่าที่ถูกต้อง แต่Passwordฟิลด์นั้นไม่ได้ (อาจถูกต้องตามมาตรการรักษาความปลอดภัย) ฉันไม่แน่ใจว่าปุ่มส่งจริงหรือไม่ มันมีความสำคัญต่อคุณค่าของสิ่งLoginใดบ้าง?
ทิม

5

ในที่สุดฉันก็พบวิธีการลงชื่อเข้าใช้โดยelinksอัตโนมัติ มันใช้งานได้และมันก็ง่ายที่จะกำหนดค่า!

ต้องตั้งค่าสองตัวเลือก สิ่งนี้สามารถทำได้โดยการเพิ่มบรรทัดต่อไปนี้ใน~/.elinks/elinks.conf(หากไฟล์ไม่ได้มีหนึ่งสร้าง) หรือโดยการเปลี่ยนค่าที่ตำแหน่งที่เกี่ยวข้องในกล่องโต้ตอบตัวเลือกภายในelinks:

    # Save username and password for later use
set document.browse.forms.show_formhist = 1
    # Do not ask for confirmation before a form is submitted
set document.browse.forms.confirm_submit = 0

ขั้นตอนสำหรับ autologin แบบสคริปต์ได้คือ:

  • ตั้งค่าทั้งสองตัวเลือก
  • เปิดหน้าเข้าสู่ระบบelinksกรอกแบบฟอร์มและส่ง
  • เลือกที่จะจำชื่อและรหัสผ่านเพื่อใช้ในภายหลัง
  • ปิดจุดเชื่อมต่อ
  • วิ่ง elinks -auto-submit http://somesite.com

คำสั่งหลังควรดำเนินการเข้าสู่ระบบอัตโนมัติโดยไม่ต้องมีการโต้ตอบกับผู้ใช้เพิ่มเติม

ฉันใช้งานจริงtimeout 1m elinks -auto-submit http://somesite.com &เพื่อที่ฉันจะได้ไม่ใช้กระบวนการทำงานที่ไม่ทำงานในพื้นหลังตลอดเวลา


3

วิธีง่ายๆในการสคริปต์นี้จะมีซีลีเนียม

คุณสามารถใช้ปลั๊กอิน "Test Recorder" ของ Firefox เพื่อบันทึกการทดสอบของคุณด้วยตนเองเข้าสู่ระบบเครือข่ายแล้วเล่นบททดสอบ


0

ใช่มีวิธีง่าย ๆ ในการเข้าสู่ระบบอินเทอร์เน็ตของมหาวิทยาลัยคุณสามารถใช้เว็บเบราว์เซอร์' Lynx ' ซึ่งเป็นเบราว์เซอร์แบบข้อความที่ออกแบบมาเพื่อใช้กับเทอร์มินัล ดังนั้นนี่คือวิธี:

$ echo "username=myname&password=mypassword" | lynx "url of the form" -post_data

โดยที่ ' ชื่อผู้ใช้ ' เป็นชื่อของเขตข้อมูลที่สอดคล้องกับชื่อผู้ใช้ในรูปแบบและ ' รหัสผ่าน ' เป็นชื่อของเขตข้อมูลที่สอดคล้องกับเขตข้อมูลรหัสผ่านและ ' myname ' และ ' mypassword ' เป็นค่าที่สอดคล้องกันที่จะกรอก แบบฟอร์ม คุณสามารถค้นหาชื่อฟิลด์โดยใช้ 'ตรวจสอบองค์ประกอบ' จากเบราว์เซอร์ใด ๆ ฉันลองใช้ curl ตามคำแนะนำของ Blueberry - Vignesh4303 แต่ไม่ได้ผล


0

คุณสามารถรับ Add-on สำหรับเบราว์เซอร์ของคุณซึ่งจะเข้าสู่เว็บไซต์โดยอัตโนมัติด้วยรหัสผ่านที่บันทึกไว้ ฉันใช้ AutoAuth กับ Firefox จากนั้นคุณเข้าสู่ระบบหนึ่งครั้งและบันทึกข้อมูลประจำตัวของคุณแล้วเขียนสคริปต์ที่เพิ่งมี

#!/bin/bash
firefox https://website address goes here

เมื่อดำเนินการมันจะเข้าสู่ระบบอัตโนมัติ ฉันลองกับเว็บไซต์หลายแห่ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.