Ben gördüm:
http://www...
ftp://blah.blah...
file://blah.blah...
unreal://blah.blah...
mailto://blah.blah...
Gördüğünüz ilk bölüm nedir http
ve benzeri?
Kendi kayıt olabilir miyim?
Ben gördüm:
http://www...
ftp://blah.blah...
file://blah.blah...
unreal://blah.blah...
mailto://blah.blah...
Gördüğünüz ilk bölüm nedir http
ve benzeri?
Kendi kayıt olabilir miyim?
Yanıtlar:
İle kısmının HTTP://
, FTP://
vb denir URI Şemaları
Kayıt defterini kullanarak kendiniz kayıt olabilirsiniz.
HKEY_CLASSES_ROOT/
your-protocol-name/
(Default) "URL:your-protocol-name Protocol"
URL Protocol ""
shell/
open/
command/
(Default) PathToExecutable
Kaynaklar: https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml , http://msdn.microsoft.com/en-us/library/aa767914(v=vs.85).aspx
(Default)
burada boş dize demektir. Kelimenin tam anlamıyla almayın.
Not defterini açın ve aşağıdaki kodu içine yapıştırın. "Uygulamanız" ı uygulamanızın adıyla değiştirin. Bunu YourApp.reg dosyasına kaydedin ve explorer'da tıklayarak çalıştırın. Bu kadar! Şerefe! 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\""
Bu, her tarayıcı için farklıdır, IE ve pencerelerde takılabilir protokol işleyici dediklerini oluşturmanız gerekir.
Temel adımlar aşağıdaki gibidir:
Windows tarafında daha fazla ayrıntı için MSDN'deki Eşzamansız Takılabilir Protokoller Hakkında konusuna bakın . Windows SDK'sında da bir örnek vardır.
Hızlı bir google ayrıca codeproject ile ilgili bu makaleyi de gösterdi: http://www.codeproject.com/KB/IP/DataProtocol.aspx .
Son olarak, bir güvenlik görevlisi olarak bu kodun savaşın sertleştirilmesi gerektiğini belirtmek zorundayım. Güvenilir bir şekilde yapmak için yönetilen kodda yapamazsınız ve C ++ ile yapmalısınız (VB6 kullanabileceğinizi varsayalım). Bunu gerçekten yapmanız gerekip gerekmediğini ve bunu yaparsanız, dikkatlice tasarlayın ve güvenli bir şekilde kodlayın. Saldırgan, bir sayfaya bir bağlantı ekleyerek size iletilen içeriği kolayca kontrol edebilir. Örneğin, basit bir arabellek taşması varsa bunu kimse yapamaz:<a href="custom:foooo{insert long string for buffer overflow here}"> Click me for free porn</a>
Strsafe ve VC8 ve üstü derleyicilere dahil edilen yeni güvenli CRT yöntemlerini kullanmayı düşünün. Ne hakkında konuştuğum hakkında bir fikriniz yoksa http://blogs.msdn.com/michael_howard/archive/2006/02/27/540123.aspx adresine bakın .
Kayıtlı URI şemalarının listesi . Her birinin bir RFC'si vardır - onu tanımlayan bir belge, neredeyse standarttır. RFC, yeni uygulamaların geliştiricilerine (tarayıcılar, ftp istemcileri vb.) Neyi desteklemeleri gerektiğini söyler. Yeni bir temel düzey protokole ihtiyacınız varsa, kayıtlı olmayan bir protokol kullanabilirsiniz. Diğer cevaplar size nasıl olduğunu söyler. Mevcut protokollerle bir çok şey yapabileceğinizi, böylece mevcut uygulamalarını kazanabileceğinizi lütfen unutmayın.
Çoğu Microsoft ürünü için (Internet Explorer, Office, "açık dosya" iletişim kutuları vb.) , Uygun öneki URI açıldığında çalıştırılacak bir uygulamayı kaydedebilirsiniz . Bu, daha yaygın açıklamanın bir parçasıdır - kendi protokolünüzü nasıl uygulayacağınız.
Buna protokol denir. Kendi protokolünüzü oluşturmanızı engelleyen tek şey:
Windows # 1'i gerçekten kolaylaştırıyor, birçok durumda aslında ihtiyacınız olan tek şey bu. Yani:
İlk bölüme protokol denir ve evet kendi protokolünüzü kaydedebilirsiniz. Windows'ta (C # etiketi göz önüne alındığında bunu yaptığınızı varsayıyorum - üzgünüm Mono hayranları), kayıt defteri aracılığıyla yapılır .
Protokol mü?
Bunu buldum, bir bilgisayar için yerel bir ayar gibi görünüyor ...
Gerçekten böyle bir kayıt yapmak zorunda değilsiniz. Emule gibi birçok program gördüm, kendi protokol belirleyicilerini oluşturdum (buna göre olduğunu düşünüyorum). Bundan sonra, temel olarak, kayıt defterinde programın bu protokolü hangi şekilde işlediğine ilişkin bazı değerler ayarlamanız gerekir. Protokol belirteçlerinin resmi bir kayıt defteri olup olmadığından emin değilim. Kullanıcıların uygulamanızı tarayıcılarından açmasını istiyorsanız, kendi uygulamanız için kendi protokol belirleyicinizi oluşturmanızı engelleyecek pek bir şey yoktur.