我见过:
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
?
我可以自己注册吗?
Answers:
与该部分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/zh-cn/library/aa767914( v= vs.85).aspx
(Default)
这里的意思是空字符串。不要从字面上看。
打开记事本并将下面的代码粘贴到其中。将“ YourApp”更改为您的应用名称。将其保存到YourApp.reg,然后在资源管理器中单击以执行它。而已!干杯! 欧文·汉吉斯(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\""
对于每种浏览器而言,这是不同的,在IE和Windows中,您需要创建它们称为可插入协议处理程序的内容。
基本步骤如下:
有关Windows方面的更多详细信息,请参阅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和VC8及更高版本的编译器中包含的新安全CRT方法。如果您不知道我在说什么,请参阅http://blogs.msdn.com/michael_howard/archive/2006/02/27/540123.aspx。
这就是所谓的协议。阻止您制定自己的协议的唯一原因是:
Windows使#1变得非常简单,这在很多情况下是您实际需要的。即:
您实际上并不需要这样做。我已经看到许多程序(例如emule)创建了自己的协议规范(这就是我所说的名称)。之后,您基本上只需要在注册表中设置一些值即可确定该程序处理的协议。我不确定是否有任何官方的协议说明注册表。如果您希望人们从他们的浏览器中打开您的应用程序,那么实际上并没有阻止您为自己的应用程序创建自己的协议说明符的方法。