it-swarm.com.de

Wie erstelle ich mein eigenes URL-Protokoll? (z. B. so: // ...)

Ich habe gesehen:

  • http://www...
  • ftp://blah.blah...
  • file://blah.blah...
  • unreal://blah.blah...
  • mailto://blah.blah...

Was ist der erste Abschnitt, in dem Sie http und dergleichen sehen?

Kann ich mich selbst registrieren?

199
Michael Beck

Der Teil mit dem HTTP://, FTP:// usw. heißen RI-Schemata

Sie können Ihre eigene Registrierung über die Registrierung vornehmen.

HKEY_CLASSES_ROOT/
  your-protocol-name/
    (Default)    "URL:your-protocol-name Protocol"
    URL Protocol ""
    Shell/
      open/
        command/
          (Default) PathToExecutable

Quellen: https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml , http://msdn.Microsoft.com/en-us/library) /aa767914(v=vs.85).aspx

191
James Gregory

Öffne den Editor und füge den unten stehenden Code ein. Ändern Sie "YourApp" in den Namen Ihrer App. Speichern Sie es in YourApp.reg und führen Sie es aus, indem Sie im Explorer darauf klicken. Das ist es! Prost! 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\""
55
Codebeat

Dies ist für jeden Browser unterschiedlich. In IE und Windows müssen Sie einen so genannten Plug-In-Protokoll-Handler erstellen.

Die grundlegenden Schritte sind wie folgt:

  1. Implementieren Sie die IInternetProtocol-Schnittstelle.
  2. Implementieren Sie die IInternetProtocolRoot-Schnittstelle.
  3. Implementieren Sie die IClassFactory-Schnittstelle.
  4. Wahlweise. Implementieren Sie die IInternetProtocolInfo-Schnittstelle. Das HTTP-Protokoll wird vom Transaktionshandler unterstützt.
  5. Wenn IInternetProtocolInfo implementiert ist, bieten Sie Unterstützung für PARSE_SECURITY_URL und PARSE_SECURITY_DOMAIN, damit der URL-Sicherheitszonenmanager die Sicherheit ordnungsgemäß handhaben kann. Schreiben Sie den Code für Ihren Protokoll-Handler.
  6. Bieten Sie Unterstützung für BINDF_NO_UI und BINDF_SILENTOPERATION.
  7. Fügen Sie einen Unterschlüssel für Ihren Protokollhandler in der Registrierung unter HKEY_CLASSES_ROOT\PROTOCOLS\Handler hinzu.
  8. Erstellen Sie einen Zeichenfolgenwert CLSID unter dem Unterschlüssel, und legen Sie die Zeichenfolge auf die CLSID Ihres Protokollhandlers fest.

Siehe Über asynchrone Plug-In-Protokolle auf MSDN für weitere Details auf der Windows-Seite. Es gibt auch ein Beispiel im Windows SDK.

Ein kurzer Blick auf Google zeigte auch diesen Artikel im Codeprojekt: http://www.codeproject.com/KB/IP/DataProtocol.aspx .

Schließlich muss ich als Sicherheitsbeamter darauf hinweisen, dass dieser Code kampferprobt werden muss. Es ist mit einem hohen Risiko verbunden, da es für eine zuverlässige Ausführung nicht in verwaltetem Code und nicht in C++ möglich ist (ich nehme an, Sie könnten VB6 verwenden). Sie sollten überlegen, ob Sie dies wirklich tun müssen, und wenn Sie dies tun, entwerfen Sie es sorgfältig und codieren Sie es sicher. Ein Angreifer kann den Inhalt, der an Sie weitergeleitet wird, einfach durch Hinzufügen eines Links auf einer Seite steuern. Wenn Sie zum Beispiel einen einfachen Pufferüberlauf haben, sollte das niemand besser tun: <a href="custom:foooo{insert long string for buffer overflow here}"> Click me for free porn</a>

Erwägen Sie unbedingt die Verwendung von strsafe und den neuen sicheren CRT-Methoden, die in den Compilern von VC8 und höher enthalten sind. Siehe http://blogs.msdn.com/michael_howard/archive/2006/02/27/540123.aspx , wenn Sie keine Ahnung haben, wovon ich spreche.

38
Peter Oehlert

Hier ist eine Liste der registrierten RI-Schemata . Jeder hat einen RFC - ein Dokument, das ihn definiert, was beinahe ein Standard ist. Der RFC teilt den Entwicklern neuer Anwendungen (z. B. Browsern, FTP-Clients usw.) mit, welche Unterstützung sie benötigen. Wenn Sie ein neues Basisprotokoll benötigen, können Sie ein nicht registriertes Protokoll verwenden. Die anderen Antworten sagen Ihnen, wie. Denken Sie daran, dass Sie mit den vorhandenen Protokollen viele Dinge tun können, um die vorhandenen Implementierungen zu erhalten.

18
Yuval F

Für die meisten Microsoft-Produkte (Internet Explorer, Office, "Datei öffnen" -Dialoge usw.) können Sie eine Anwendung registrieren ausführen, wenn der URI mit dem entsprechenden Präfix geöffnet wird. Dies ist ein Teil der allgemeineren Erklärung - Implementierung Ihres eigenen Protokolls.

Für Mozilla lautet die Erklärung hier , Java - hier .

4
Dmitry Khalatov

Es heißt das Protokoll. Das einzige, was Sie daran hindert, ein eigenes Protokoll zu erstellen, ist, dass Sie Folgendes tun müssen:

  1. Schreiben Sie einen Browser oder einen Benutzeragenten, der dieses Protokoll sowohl in seiner URL-Form als auch im tatsächlichen Datenformat versteht
  2. Schreiben Sie einen Server, der dieses Protokoll versteht
  3. Legen Sie vorzugsweise eine Spezifikation für das Protokoll fest, damit Browser und Server weiterhin zusammenarbeiten können.

Windows macht # 1 wirklich einfach, und in vielen Fällen ist dies alles, was Sie tatsächlich brauchen. Nämlich:

Registrieren einer Anwendung bei einem URL-Protokoll

2
JSBձոգչ

Der erste Abschnitt wird als Protokoll bezeichnet und Sie können Ihr eigenes Protokoll registrieren. Unter Windows (wo ich davon ausgehe, dass Sie dies mit dem C # -Tag tun - entschuldigen Sie, Mono-Fans) geschieht dies über die Registrierung .

1
GaryF

Ein Protokoll?

Ich fand dies, es scheint eine lokale Einstellung für einen Computer zu sein ...

http://kb.mozillazine.org/Register_protocol

0
Hugoware