Saya sudah melihat:
http://www...
ftp://blah.blah...
file://blah.blah...
unreal://blah.blah...
mailto://blah.blah...
Apa itu bagian pertama di mana Anda melihat http
dan sejenisnya disebut?
Bisakah saya mendaftarkan sendiri?
Saya sudah melihat:
http://www...
ftp://blah.blah...
file://blah.blah...
unreal://blah.blah...
mailto://blah.blah...
Apa itu bagian pertama di mana Anda melihat http
dan sejenisnya disebut?
Bisakah saya mendaftarkan sendiri?
Jawaban:
Bagian dengan HTTP://
, FTP://
, dll disebut URI Skema
Anda dapat mendaftarkan sendiri melalui registri.
HKEY_CLASSES_ROOT/
your-protocol-name/
(Default) "URL:your-protocol-name Protocol"
URL Protocol ""
shell/
open/
command/
(Default) PathToExecutable
Sumber: https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml , http://msdn.microsoft.com/en-us/library/aa767914(v=vs.85).aspx
(Default)
di sini berarti string kosong. Jangan menerimanya secara harfiah.
Buka notepad dan rekatkan kode di bawah ini ke dalamnya. Ubah "YourApp" menjadi nama aplikasi Anda. Simpan ke YourApp.reg dan jalankan dengan mengkliknya di explorer. Itu dia! Bersulang! Erwin Haantjes
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\""
Ini berbeda untuk setiap browser, di IE dan windows Anda perlu membuat apa yang mereka sebut pengendali protokol pluggable.
Langkah-langkah dasarnya adalah sebagai berikut:
Lihat Tentang Asynchronous Pluggable Protocols di MSDN untuk detail lebih lanjut di sisi windows. Ada juga sampel di SDK windows.
Google cepat juga menunjukkan artikel ini pada codeproject: http://www.codeproject.com/KB/IP/DataProtocol.aspx .
Akhirnya, sebagai petugas keamanan saya harus menunjukkan bahwa kode ini harus diperketat. Ini berisiko tinggi karena untuk melakukannya dengan andal Anda tidak dapat melakukannya dalam kode yang dikelola dan harus melakukannya dalam C ++ (saya kira Anda bisa menggunakan VB6). Anda harus mempertimbangkan apakah Anda benar-benar perlu melakukan ini dan jika Anda melakukannya, rancang dengan hati-hati dan berikan kode dengan aman. Seorang penyerang dapat dengan mudah mengontrol konten yang diteruskan kepada Anda dengan hanya menyertakan tautan pada halaman. Misalnya jika Anda memiliki buffer overflow sederhana maka tidak ada yang lebih baik melakukan ini:<a href="custom:foooo{insert long string for buffer overflow here}"> Click me for free porn</a>
Sangat mempertimbangkan menggunakan strsafe dan metode CRT aman baru termasuk dalam VC8 dan kompiler di atas. Lihat http://blogs.msdn.com/michael_howard/archive/2006/02/27/540123.aspx jika Anda tidak tahu apa yang saya bicarakan.
Berikut daftar skema URI yang terdaftar . Masing-masing memiliki RFC - dokumen yang mendefinisikannya, yang hampir merupakan standar. RFC memberi tahu pengembang aplikasi baru (seperti browser, klien ftp, dll.) Apa yang mereka butuhkan untuk mendukung. Jika Anda memerlukan protokol tingkat dasar yang baru, Anda dapat menggunakan yang tidak terdaftar. Jawaban lain memberi tahu Anda caranya. Harap diingat bahwa Anda dapat melakukan banyak hal dengan protokol yang ada, sehingga mendapatkan implementasi yang ada.
Untuk sebagian besar produk Microsoft (Internet Explorer, Office, dialog "buka file", dll.) Anda dapat mendaftarkan aplikasi yang akan dijalankan ketika URI dengan awalan yang sesuai dibuka. Ini adalah bagian dari penjelasan yang lebih umum - bagaimana menerapkan protokol Anda sendiri.
Ini disebut protokol. Satu-satunya hal yang mencegah Anda membuat protokol sendiri adalah Anda harus:
Windows membuat # 1 sangat mudah, dan dalam banyak kasus inilah yang sebenarnya Anda butuhkan. Yaitu:
Bagian pertama disebut protokol dan ya Anda bisa mendaftarkannya sendiri. Di Windows (di mana saya mengasumsikan Anda melakukan ini karena diberi tag C # - maaf penggemar Mono), ini dilakukan melalui registri .
Protokol?
Saya menemukan ini, tampaknya menjadi pengaturan lokal untuk komputer ...
Anda tidak benar-benar harus mendaftar. Saya telah melihat banyak program, seperti emule, membuat protokol spesifik mereka sendiri (saya pikir itu namanya). Setelah itu, Anda pada dasarnya hanya perlu menetapkan beberapa nilai dalam registri untuk program apa yang menangani protokol itu. Saya tidak yakin apakah ada registry resmi dari specifier protokol. Tidak banyak yang bisa menghentikan Anda membuat specifier protokol Anda sendiri untuk aplikasi Anda sendiri jika Anda ingin orang membuka aplikasi Anda dari browser mereka.