ฉันเคยเห็น:
http://www...
ftp://blah.blah...
file://blah.blah...
unreal://blah.blah...
mailto://blah.blah...
หัวข้อแรกที่คุณเห็นhttp
และถูกใจคืออะไร?
ฉันจะลงทะเบียนของตัวเองได้ไหม
ฉันเคยเห็น:
http://www...
ftp://blah.blah...
file://blah.blah...
unreal://blah.blah...
mailto://blah.blah...
หัวข้อแรกที่คุณเห็นhttp
และถูกใจคืออะไร?
ฉันจะลงทะเบียนของตัวเองได้ไหม
คำตอบ:
ส่วนกับHTTP://
, FTP://
ฯลฯ จะเรียกว่าแบบแผน URI
คุณสามารถลงทะเบียนของคุณเองผ่านทางรีจิสทรี
HKEY_CLASSES_ROOT/
your-protocol-name/
(Default) "URL:your-protocol-name Protocol"
URL Protocol ""
shell/
open/
command/
(Default) PathToExecutable
แหล่งที่มา: https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml , http://msdn.microsoft.com/en-us/library/aa767914(v=vs.85).aspx
(Default)
นี่หมายถึงสตริงที่ว่างเปล่า อย่าใช้มันอย่างแท้จริง
เปิดแผ่นจดบันทึกและวางรหัสด้านล่างลงไป เปลี่ยน "YourApp" เป็นชื่อแอปของคุณ บันทึกลงใน YourApp.reg และดำเนินการโดยคลิกที่มันใน Explorer แค่นั้นแหละ! ไชโย! เออร์วินฮันเทส
REGEDIT4
[HKEY_CLASSES_ROOT\YourApp]
@="URL:YourApp Protocol"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\YourApp\DefaultIcon]
@="\"C:\\Program Files\\YourApp\\YourApp.exe\""
[HKEY_CLASSES_ROOT\YourApp\shell]
[HKEY_CLASSES_ROOT\YourApp\shell\open]
[HKEY_CLASSES_ROOT\YourApp\shell\open\command]
@="\"C:\\Program Files\\YourApp\\YourApp.exe\" \"%1\" \"%2\" \"%3\" \"%4\" \"%5\" \"%6\" \"%7\" \"%8\" \"%9\""
สิ่งนี้จะแตกต่างกันไปสำหรับแต่ละเบราว์เซอร์ใน IE และ windows คุณต้องสร้างสิ่งที่เรียกว่าตัวจัดการโปรโตคอลแบบเสียบได้
ขั้นตอนพื้นฐานมีดังนี้:
ดูเกี่ยวกับ Asynchronous Pluggable Protocols ใน MSDNสำหรับรายละเอียดเพิ่มเติมทางหน้าต่าง นอกจากนี้ยังมีตัวอย่างใน windows SDK
ของ Google อย่างรวดเร็วนอกจากนี้ยังแสดงให้เห็นว่าบทความนี้ใน codeproject: http://www.codeproject.com/KB/IP/DataProtocol.aspx
ในที่สุดในฐานะที่เป็นคนรักษาความปลอดภัยฉันต้องชี้ให้เห็นว่ารหัสนี้จะต้องมีการต่อสู้ที่แข็ง มันมีความเสี่ยงสูงเนื่องจากการทำอย่างน่าเชื่อถือคุณไม่สามารถทำได้ในรหัสที่ได้รับการจัดการและต้องทำใน C ++ (ฉันคิดว่าคุณสามารถใช้ VB6) คุณควรพิจารณาว่าคุณจำเป็นต้องทำสิ่งนี้จริงหรือไม่และถ้าเป็นเช่นนั้นให้ออกแบบอย่างระมัดระวังและกำหนดรหัสให้ปลอดภัย ผู้โจมตีสามารถควบคุมเนื้อหาที่ส่งถึงคุณได้อย่างง่ายดายเพียงใส่ลิงค์ในหน้าเว็บ ตัวอย่างเช่นถ้าคุณมีบัฟเฟอร์ล้นง่ายไม่มีใครทำสิ่งนี้ได้ดีกว่า:<a href="custom:foooo{insert long string for buffer overflow here}"> Click me for free porn</a>
พิจารณาใช้ strsafe และ CRT ที่ปลอดภัยใหม่ซึ่งรวมอยู่ใน VC8 และคอมไพเลอร์ข้างต้น ดูhttp://blogs.msdn.com/michael_howard/archive/2006/02/27/540123.aspxหากคุณไม่รู้ว่าฉันกำลังพูดถึงอะไร
นี่คือรายการของการจดทะเบียนแผนการ URI แต่ละคนมี RFC - เอกสารที่กำหนดซึ่งเกือบจะเป็นมาตรฐาน RFC บอกผู้พัฒนาแอปพลิเคชั่นใหม่ (เช่นเบราว์เซอร์ไคลเอนต์ FTP ฯลฯ ) สิ่งที่พวกเขาต้องการให้การสนับสนุน หากคุณต้องการโปรโตคอลระดับฐานใหม่คุณสามารถใช้โปรโตคอลที่ไม่ได้ลงทะเบียน คำตอบอื่น ๆ จะบอกคุณว่าอย่างไร โปรดทราบว่าคุณสามารถทำสิ่งต่าง ๆ ได้มากมายด้วยโปรโตคอลที่มีอยู่ซึ่งจะทำให้การใช้งานที่มีอยู่
สำหรับผลิตภัณฑ์ Microsoft ส่วนใหญ่ (Internet Explorer, Office, กล่องโต้ตอบ "เปิดไฟล์" เป็นต้น) คุณสามารถลงทะเบียนแอปพลิเคชันที่จะทำงานเมื่อเปิด URI พร้อมคำนำหน้าที่เหมาะสม นี่เป็นส่วนหนึ่งของคำอธิบายทั่วไป- วิธีใช้โปรโตคอลของคุณเอง
สำหรับ Mozilla คำอธิบายได้ที่นี่ , Java - ที่นี่
มันเรียกว่าโปรโตคอล สิ่งเดียวที่ทำให้คุณไม่สามารถสร้างโปรโตคอลของคุณได้คือ:
Windows ทำให้ # 1 ง่ายจริงๆในหลาย ๆ กรณีนี่คือสิ่งที่คุณต้องการจริงๆ กล่าวคือ:
พิธีสาร?
ฉันพบสิ่งนี้ดูเหมือนว่าเป็นการตั้งค่าท้องถิ่นสำหรับคอมพิวเตอร์ ...
คุณไม่จำเป็นต้องทำการลงทะเบียนใด ๆ ฉันเคยเห็นหลายโปรแกรมเช่น emule สร้างโปรโตคอลเฉพาะของตนเอง (นั่นคือสิ่งที่ฉันคิดว่ามันเรียกว่า) หลังจากนั้นคุณเพียงแค่ต้องกำหนดค่าบางอย่างในรีจิสตรีว่าโปรแกรมใดจัดการโปรโตคอลนั้น ฉันไม่แน่ใจว่ามีรีจิสตรีโปรโตคอลอย่างเป็นทางการหรือไม่ ไม่มีอะไรมากที่จะหยุดคุณจากการสร้างตัวระบุโปรโตคอลของคุณเองสำหรับแอปพลิเคชันของคุณเองหากคุณต้องการให้ผู้คนเปิดแอปของคุณจากเบราว์เซอร์ของพวกเขา