나는 보았다 :
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에 저장하고 탐색기에서 클릭하여 실행하십시오. 그게 다야! 건배! 어윈 한트 제스
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에서는 플러그 가능한 프로토콜 핸들러라고하는 것을 작성해야합니다.
기본 단계는 다음과 같습니다.
창쪽에 대한 자세한 내용은 MSDN의 비동기 플러그 가능 프로토콜 정보를 참조하십시오 . Windows SDK에도 샘플이 있습니다.
빠른 구글도 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>
VC8 이상 컴파일러에 포함 된 strsafe 및 새로운 보안 CRT 메소드 사용을 강력하게 고려하십시오. 내가 무슨 말을하는지 모른다면 http://blogs.msdn.com/michael_howard/archive/2006/02/27/540123.aspx를 참조하십시오 .
등록 된 URI 스킴 목록입니다 . 각각에는 RFC (문서를 정의하는 문서)가 있으며 거의 표준입니다. RFC는 새로운 응용 프로그램 개발자 (브라우저, ftp 클라이언트 등)에게 지원해야 할 사항을 알려줍니다. 새로운 기본 수준 프로토콜이 필요한 경우 등록되지 않은 프로토콜을 사용할 수 있습니다. 다른 답변은 방법을 알려줍니다. 기존 프로토콜을 사용하여 많은 작업을 수행 할 수 있으므로 기존 구현을 얻을 수 있습니다.
이것을 프로토콜이라고합니다. 자신의 프로토콜을 만들지 못하게하는 유일한 방법은 다음과 같습니다.
Windows는 # 1을 매우 쉽게 만들어줍니다. 많은 경우에 이것이 실제로 필요한 전부입니다. 즉:
첫 번째 섹션을 프로토콜이라고하며, 직접 등록 할 수 있습니다. Windows에서 (C # 태그-미안한 모노 팬이 주어 졌다고 가정하고있는 경우) 레지스트리를 통해 수행 됩니다 .
실제로 등록 할 필요는 없습니다. 에뮬과 같은 많은 프로그램이 자체 프로토콜 특정자를 생성하는 것을 보았습니다 (그것이라고 생각합니다). 그 후에 기본적으로 레지스트리에서 어떤 프로그램이 해당 프로토콜을 처리하는지에 대한 일부 값을 설정해야합니다. 프로토콜 지정자 공식 레지스트리가 있는지 확실하지 않습니다. 사람들이 브라우저에서 앱을 열도록하려면 자신의 응용 프로그램에 대한 고유 한 프로토콜 지정자를 작성하는 것을 막지 않아도됩니다.