วิธีการกู้คืนข้อมูลฟอร์มสำหรับเว็บเพจใน Firefox


26

ฉันกรอกแบบฟอร์มที่มีความยาวบนหน้าเว็บซึ่งปฏิเสธการส่งของฉันเนื่องจากข้อผิดพลาดของเซิร์ฟเวอร์ ฉันไม่สามารถกู้คืนฟอร์มที่ป้อนเข้าได้

Firefox มีวิธีใดบ้างในการค้นหาแคชประวัติ ฯลฯ เพื่อกู้คืนข้อมูลนี้

คำตอบ:


5

ฉันขอแนะนำให้คุณติดตั้งLazarus - มันช่วยปกป้องก้นฉันได้หลายครั้ง


3
ลาซารัสกำลังสัญญา แต่อนิจจาLazarusตายแล้ว (!) ลาซารัสไม่ทำงาน แบบฟอร์มการติดต่อในเว็บไซต์เสีย และนักพัฒนาไม่ตอบสนอง
Nicolas Barbulesco

ลาซารัสก็ขัดแย้งกับ firebug ด้วยเช่นกัน
Tomáš Zato - Reinstate Monica

ได้รับมัน "ตายแล้ว" และนักพัฒนาดูเหมือนจะเป็น MIA แต่ก็ยังใช้งานได้สำหรับฉัน
Animadversor

@Animadversor มันไม่ทำงานอีกต่อไปใน Firefox v53 เนื่องจากความไม่ลงรอยกัน (ตามที่รายงานโดย Firefox เมื่อเริ่มต้น)
David Balažic

2
เครื่องมือ "เครื่องมือรักษาฟอร์ม" เช่น Lazarus จะต้องติดตั้งก่อนที่จะสูญเสียข้อมูลไม่ใช่หลังจากนั้น OP กำลังถามเกี่ยวกับการกู้คืนข้อมูลที่สูญหาย
user598527

6

ต๊าย! ฉันหาวิธีแก้ปัญหา - ฉันสามารถกดปุ่ม "ย้อนกลับ" และ "ส่งต่อ" ด้วยส่วนขยาย" Live HTTP Headers " เพื่อรับปริมาณข้อมูลขาเข้า / ขาออกและข้อมูลในแบบฟอร์มเป็นส่วนหนึ่งของการตอบสนอง POST (Firefox จะส่งแบบฟอร์มอีกครั้งไม่แน่ใจว่าเก็บไว้ที่ไหน แต่ไม่มีวิธีการแสดงผลให้ผู้ใช้เห็นได้อย่างชัดเจน)


2
ฉันคิดว่ามันถูกเก็บไว้ใน RAM เนื่องจากคุณสามารถกด "ย้อนกลับ" เพื่อกลับไปที่แบบฟอร์มด้วยข้อมูลของคุณที่กรอกไว้ แต่ฉันไม่เคยได้ยินเกี่ยวกับ Firefox คืนค่าฟอร์มเหล่านั้นหลังจากที่คุณปิดและรีสตาร์ทเบราว์เซอร์
David Z

คุณอาจต้องการให้ Lazarus [ addons.mozilla.org/en-US/firefox/addon/6984 ] ติดตั้งหากสิ่งนี้เกิดขึ้นอีก
Sathyajith Bhat

@Satya: พิจารณาการโพสต์เป็นคำตอบที่แยกจากกันฉันจะโหวตให้
Jason S

1
บางทีนี่อาจไม่ใช่ความจริงเมื่อสามปีที่แล้ว แต่เครื่องมือนักพัฒนาเว็บในตัวของ Firefox มีสิ่งอำนวยความสะดวกที่ให้คุณดึงข้อมูลในลักษณะเดียวกัน เพียงแค่ตอบที่นี่
sh1

1
ฉันมีความคิดอื่น โหลดหน้านี้ซ้ำอีกครั้งพร้อมตรวจสอบส่วนหัว ... ฉันจะโพสต์หน้านี้เป็นคำตอบ
Nicolas Barbulesco

5

วิธีการของฉันได้รับการทดสอบในกรณีฉุกเฉิน (ความคิดเห็น Facebook หายไป) มันต้องเป็นเครื่องมือของบุคคลที่สาม - ProcessHacker สำหรับ Windows เท่านั้น - สำหรับวิธี Linux ให้ตรวจสอบคำถามนั้น มันควรจะทำงานกับทุกเบราว์เซอร์ Firefox

มีสองวิธี สิ่งแรกคือผู้ใช้ที่เป็นมิตรมากขึ้นแต่ถ้าพีซีจะพังคุณจะสูญเสียข้อมูล ข้อที่สองคือปลอดภัยยิ่งขึ้นแต่ต้องการเครื่องมือเพิ่มเติม ด้วยวินาทีคุณจะได้รับไฟล์ที่คุณสามารถมอบให้กับผู้เชี่ยวชาญได้หากบทช่วยสอนนั้นยากเกินไป คุณสามารถทำวิธีที่ II ขั้นตอนที่ 1 และ 2 เพื่อความปลอดภัยแล้ววิธีที่ฉันจะทำให้ง่ายขึ้น ฉันใช้วิธี I.

นั่นคือรายการขั้นตอนที่แน่นอนที่ฉันทำ:

ทางฉัน

  1. สิ่งแรกที่ต้องทำคือหยุดกระบวนการชั่วคราว นี่เป็นสิ่งสำคัญสำหรับความสำเร็จ ฉันเปิด ProcessHacker (PH) พบ firefox.exe ในรายการ (คุณสามารถคลิกที่คอลัมน์ "ชื่อ" เพื่อกำจัดมุมมองต้นไม้และดูรายการ) และจากเมนูบริบทที่ฉันใช้ "ระงับ" ดูเหมือนว่า Firefox จะถูกแช่แข็งดังนั้นหาก Windows ถามคุณเกี่ยวกับการยกเลิกไม่ตอบสนองกระบวนการอย่าทำ! มันยังมีชีวิตอยู่แค่นอนหลับ

  2. ดับเบิลคลิกที่แถว firefox.exe หรือเลือก "Properties" จากเมนูบริบทของ firefox.exe

  3. ไปที่แท็บ "Memory" และคลิกที่ปุ่ม "Strings ... " ที่มุมบนขวา

  4. ฉันใช้การตั้งค่าเริ่มต้น ([✓] ถูกทำเครื่องหมายที่ช่องทำเครื่องหมาย [] ไม่ได้ถูกเลือก) - ต่ำสุด len: 10; [✓] ตรวจจับ Unicode; ค้นหาใน [✓] ส่วนตัว / [] รูปภาพ / [] แมป คลิกที่ปุ่ม "ตกลง"

  5. หลังจากผ่านไปสักครู่ (ไม่เกินนาที แต่อาจจะมีไม่กี่วินาที) คุณจะพบสตริงทั้งหมด ด้วยการตั้งค่าแบบนี้ตอนนี้ฉันมีสตริงมากกว่า 700k แล้ว ตรวจสอบทุกคนค้นหาข้อความที่หายไป แค่ล้อเล่น! ไปที่ประเด็นต่อไป :)

  6. คลิกที่ "ตัวกรอง" ด้านล่างซ้ายและเลือกรายการเมนูที่เหมาะกับคุณที่สุด ฉันใช้ "มี (ตัวพิมพ์เล็กและใหญ่)"

  7. ป้อนคำที่อยู่ในข้อความที่หายไปของคุณ Wordเนื่องจากสามารถบันทึกบางสตริงได้เช่น " foo bar" ยิ่งคำที่ยาวและไม่ซ้ำใครยิ่งผลลัพธ์น้อยลงเท่านั้น (มันจะง่ายขึ้น) หากคุณไม่ได้รับผลลัพธ์ให้ลองใช้คำอื่น ฉันมีความคิดเห็นของฉันในสองส่วนของหน่วยความจำ - ในที่หนึ่งมันก็เต็มในอีกครึ่งหนึ่ง

  8. ดูผลลัพธ์ สตริงส่วนใหญ่จะมองเห็นได้ด้วยตัวละครที่เป็นโมฆะหลังจากอักขระทุกตัวเช่นfoobarจะเป็นf.o.o.b.a.r(ฐานสิบหก66 00 6F 00 6F 00 62 00 61 00 72) ไม่ต้องกังวลกับมัน มันเป็นสิ่งที่ Unicode หากคุณพบข้อความของคุณคลิกที่ปุ่ม "บันทึก ... " ความคิดเห็นของฉันดูเหมือนเป็นส่วนหนึ่งของ HTML คือมี<div>และ<span>แท็กอยู่รอบ

  9. เปิดไฟล์ที่บันทึกในโปรแกรมแก้ไขที่รองรับ Unicode ฉันไม่รู้เกี่ยวกับ Notepad ในตัว แต่ควรใช้งานได้ ฉันใช้ Notepad ++

  10. ค้นหาข้อความคัดลอกส่วนที่จำเป็น พูดว่า "ไชโย" ตอนนี้คุณสามารถคลิกขวาบนแถว firefox.exe จากหน้าต่างหลักและเลือก "ดำเนินการต่อ"

วิธีที่ II

  1. ทำซ้ำขั้นตอนที่ 1 จากวิธีที่ 1
  2. ค้นหาแถว firefox.exe คลิกขวาและเลือก "สร้างไฟล์การถ่ายโอนข้อมูล ... " จากเมนูบริบท
  3. ใช้เครื่องมือแก้ไขที่รองรับการโหลดไฟล์ขนาดใหญ่ Notepad ++ ควรจัดการกับมัน แต่คุณต้องปิดการใช้สีและการตรวจคำสะกด ตัวอย่าง: HxD (ฟรีแวร์, ดีกว่า IMO), wxHexEditor (FLOSS)
  4. ไปที่ขั้นตอนที่ 10 จากวิธีที่ 1

วิธีการที่ชาญฉลาด! ไม่ได้ผลสำหรับฉันในวันนี้ (ไม่เคยแก้ไขนานในเครื่องมือออนไลน์ของ Gitlab ... ) แต่ฉันจะเก็บเทคนิค (และเครื่องมือ ProcessHacker ที่ดี) ไว้ใต้หมอน

คุณสามารถสร้างไฟล์ดัมพ์จากตัวจัดการงานดูคำตอบนี้ ไม่จำเป็นต้องใช้เครื่องมือของบุคคลที่สามเช่น ProcessHacker
David Balažic

ขอบคุณเดวิด ฉันยังคิดว่าควรหยุดกระบวนการโดยเร็วและคำตอบที่คุณลิงก์จะไม่พูดอะไรเกี่ยวกับมัน ในกรณีที่การระงับความผิดพลาดจะช่วยได้มาก นอกจากนี้ยังมีฟังก์ชั่นการค้นหาสตริงใน PH เนื่องจากตัวอักษรมักจะเต็มไปด้วย 00h (null) คุณยังต้องการเครื่องมือแก้ไขเพื่อค้นหาข้อความ (แผ่นจดบันทึกจะไม่ทำเคล็ดลับ) ดังนั้นไม่ใช่ "ไม่มีบุคคลที่สาม" ทั้งหมด ในขณะเดียวกันฉันได้สูญเสียความคิดเห็นของ YouTube และ Disqus (เช่นเพจที่มี JavaScript และหน้าเว็บแบบไดนามิกจำนวนมาก) - มันทำงานได้อีกครั้ง แต่ก็ไม่ใช่วิธีที่แน่ใจ 100% ดังที่ Tibo แสดง
Krzysiu

หากมีกระบวนการทำงานของโครเมี่ยมหลายตัวมีวิธีทราบว่าเราควรใช้อันไหนดี?
JinSnow

1
ช่างเป็นคำตอบที่ดีมาก ขอบคุณที่แนะนำให้ฉันรู้จักกับ ProcessHacker ฉันไม่พบสิ่งที่ฉันค้นหาด้วยการตั้งค่าตัวกรองเริ่มต้น แต่ทำสำเร็จโดยทำเครื่องหมายที่ช่องทำเครื่องหมายทั้งหมด แน่นอนผลการค้นหาเพิ่มขึ้นเป็นจำนวนมาก แต่การใช้ตัวกรองหลาย ๆ แบบติดต่อกันทำให้แคบลง อาช่วยฉันจากการเขียนอีเมลที่หายไปบางส่วน (+1)
Linear Christmas

3

Firefox รุ่นใหม่มีเครื่องมือสำหรับนักพัฒนาที่สามารถใช้งานได้ กดCtrl+ Shift+ Qเพื่อแสดงเครื่องมือเครือข่ายกดF5เพื่อโหลดหน้าเว็บอีกครั้ง (ยืนยันคำเตือนว่าเนื้อหาจะถูกส่งอีกครั้งเราต้องการให้สิ่งนี้เกิดขึ้นอย่างแน่นอน) และเลือกบรรทัดบนสุด (อาจจะ) ในเครื่องมือเครือข่าย มันควรจะแสดงPOSTเป็นวิธีการ

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


1
ตรงนี้ หมายเหตุ: บางเว็บไซต์เข้ารหัสเนื้อหาแตกต่างกันในกรณีของฉันมันแทนที่ช่องว่างด้วย + และขึ้นบรรทัดใหม่ด้วย \ r \ n
user31389

2

อีกวิธีที่เป็นไปได้ในการกู้คืนข้อมูลของคุณคือการสร้างคอร์ดัลของ Firefox (สมมติว่าคุณใช้มันภายใต้ Linux หรือคล้ายกัน) ดูคำตอบนี้สำหรับรายละเอียดเพิ่มเติม: /superuser//a/236400/180675


2

ฉันพบ addon ใหม่ที่สามารถใช้กู้คืน postdata ที่หายไป: การควบคุมประวัติฟอร์ม

ผู้เขียนอ้างว่า:

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

แก้ไข: โอ้จริง ๆ แล้วมันบันทึกโพสต์นี้ :)


ส่วนขยายนี้เป็นความคิดที่ดี (มาก) แต่มันซับซ้อนเกินไป ส่วนขยายนี้ภูมิใจบอกว่าเป็น "ข้อความที่บันทึกอัตโนมัติที่ป้อนในรูปแบบใด ๆ " มันบันทึกข้อมูลที่ผู้ใช้ป้อน "contenteditable" หรือไม่? ตัวอย่างเช่น Disqus ข้อคิดเห็นและ Wikipedia WYSIWYG แก้ไข
Nicolas Barbulesco

@ NicolasBarbulesco ฉันไม่รู้ลองเลยแล้วบอกผู้พัฒนาถ้ามันไม่ทำงาน ฉันคิดว่ามันใช้ได้กับฟิลด์อินพุตและฟิลด์ textarea เท่านั้นและสร้าง postdata เหตุผลหลักที่ผมดาวน์โหลดมันเพราะฟอรั่มโง่ ๆ อีกมากมายเพียงแค่คุณออกจากระบบถ้าคุณเขียนโพสต์เป็นเวลานานเกินไปกินการเขียนของคุณทั้งหมด ...
Calmarius

1

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


1

เว็บเบราว์เซอร์มีข้อมูลในหน่วยความจำอย่างแน่นอน ปัญหาคือ: วิธีการดึงข้อมูลนี้?

นี่คือความคิดของฉัน ฉันยังไม่ได้ลอง บนกระดาษมันใช้งานได้ คำตอบนี้ใช้ได้กับ Firefox และเว็บเบราว์เซอร์อื่น

กล่าวโดยย่อ: โหลดหน้าซ้ำอีกครั้งขณะตรวจสอบส่วนหัว

  1. ติดตั้งเครื่องจักร เราต้องการเครื่องจักรเพื่อตรวจสอบปริมาณการใช้ HTTP ที่ส่งจากเว็บเบราว์เซอร์
    • ตัวเลือกที่ดีที่สุดคือส่วนขยาย  LiveHTTPHeadersสำหรับ Firefox แต่ฉันคิดว่าการติดตั้งส่วนขยายนี้ต้องเริ่ม Firefox ใหม่ อย่ารีสตาร์ท Firefox แน่นอน! มันจะเป็นการดีที่จะสามารถติดตั้งเครื่องจักรนี้ได้โดยไม่ต้องรีสตาร์ท Firefox มิฉะนั้นคุณจะต้องติดตั้งส่วนขยายนี้ไว้ล่วงหน้า ถ้าจำเป็นต้องเกิดขึ้นเพียงแค่ใช้เครื่องย้อนเวลา ;-)
    • หากคุณไม่สามารถเตรียมเครื่องจักรให้พร้อมในเว็บเบราว์เซอร์มีตัวเลือกอื่น ตัวเลือกนี้หนักกว่า แต่จุดแข็งของมันคือมันใช้ได้กับทุกเว็บเบราว์เซอร์และไม่ต้องรีสตาร์ท ติดตั้งเว็บเซิร์ฟเวอร์อย่างง่ายหรือตั้งค่าพร็อกซีเซิร์ฟเวอร์ (เช่น Squid) บนเครื่องของคุณ ตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ของคุณบันทึกทราฟฟิกขาเข้าด้วยส่วนหัวแบบเต็ม 127.0.0.1และวางกฎในระบบปฏิบัติการสำหรับการเปลี่ยนเส้นทางการร้องขอต่อขาออกทั้งหมด สามารถทำได้ด้วยhosts ไฟล์
  2. ทดสอบเครื่องจักร สร้างหน้าต่างใหม่ในเว็บเบราว์เซอร์ของคุณ เขียนข้อความบางอย่างในวิกิพีเดียที่นี่และคลิกดูตัวอย่าง จากนั้นตรวจสอบว่าในเครื่องจักรของคุณคุณเห็นข้อความที่เป็นลายลักษณ์อักษร หากเครื่องจักรของคุณเป็นตัวเลือกเซิร์ฟเวอร์คุณจะต้องปิดกฎการเปลี่ยนเส้นทางเพื่อโหลดแบบฟอร์ม Wikipedia และเพื่อสลับในภายหลัง
  3. หากต้องการโหลดหน้าเว็บอีกครั้งให้คลิกขวาที่ตำแหน่งของฟอร์มและเลือกโหลดซ้ำ นี้เป็นสิ่งสำคัญ. ในเว็บเมลบางอันนี่จะโหลดเฉพาะเฟรมที่เป็นแบบฟอร์ม ที่นี่เราต้องการโหลดซ้ำให้น้อยที่สุด หากคุณคลิกที่ปุ่มโหลดซ้ำ  ในแถบที่อยู่หรือในแถบปุ่มหรือถ้าคุณกด Apple R คุณจะเสี่ยงต่อการโหลดหน้าทั้งหมดอีกครั้งและในบางเว็บเมลที่มีการถ่ายทำด้วยตนเอง
  4. โดยปกติเว็บเบราว์เซอร์จะถามคุณว่า: คุณต้องการส่งข้อมูลฟอร์มอีกครั้งหรือไม่ หากคุณได้รับคำถามนี้นี่เป็นสัญญาณที่ดี เลือกส่งอีกครั้ง
  5. ตรวจสอบข้อมูล POST ที่ส่งโดยมีการตั้งค่าเครื่องจักรในขั้นตอนที่ 1 ที่นี่คุณจะพบข้อมูลที่คุณต้องการ
  6. มาบอกเราที่นี่ว่าวิธีนี้ได้ผล!

จำเป็นต้องอัปเดตตอนนี้ใช้เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์แทนการติดตั้งส่วนขยาย
user31389

1

*** การแก้ไข: ถึงแม้ว่าด้านล่างจะใช้งานได้ใน Firefox และ Chrome แต่ภาพรวมใน Firefox จะสร้างไฟล์ไบนารี (gzip'd) ดังนั้นสำหรับตอนนี้วิธีนี้ใช้งานได้เฉพาะใน Chrome: (

สำหรับทั้ง Firefox และ Chrome ผมคิดว่าเป็นวิธีที่ง่ายมากเมื่อเทียบกับการถ่ายโอนข้อมูลหลักที่แท้จริงของขั้นตอนของระบบคือการใช้เครื่องมือสำหรับนักพัฒนา

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

สกรีนช็อตของเครื่องมือสำหรับนักพัฒนา Firefox - แท็บหน่วยความจำ

ฉันเพิ่งทดสอบบน Chrome ในหน้าที่มีรูปแบบไดนามิก (JavaScript) ทำให้เกิดความยุ่งเหยิงและทำให้ข้อความที่ฉันเขียนทั้งหมดหายไป มันยังอยู่ในความทรงจำและฉันสามารถกู้คืนได้แม้ว่าฉันจะยังไม่ได้ส่งก็ตาม!

ดูhttps://developer.mozilla.org/en-US/docs/Tools/Memoryและhttps://developers.google.com/web/tools/chrome-devtools/memory-problems/heap-snapshotsสำหรับรายละเอียดเพิ่มเติม


ใน Firefox ไฟล์จะถูกบีบอัดด้วยgzipดังนั้นง่าย ๆzcat xxx.fxsnapshotช่วยให้คุณรับเนื้อหา
vaab

1
ขอบคุณ @vaab เป็น gzip'd แต่หลังจากการคลายการบีบอัดมันยังคงเป็นไฟล์ไบนารี gunzip -c(เทียบเท่ากับ zcat บน Mac) ส่งคืนเครื่องหมายคำถามเป็นหลัก ... ฉันวิ่งไปstringsแล้วฉันจะได้รับข้อมูลบ้าง แต่ฉันไม่รู้ว่าเนื้อหาแบบเต็มสามารถกู้คืนได้ด้วยวิธีดังกล่าว
Kamal
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.