Deployment 保护单击一次web部署的安装
我的网站上有一个指向VisualStudio生成的标准发布页面的链接。我担心的是,如果有人发现该页面的URL,他们可以下载我的软件。当然,我可以用密码保护带有链接的页面,但它仍然不能保护下载URL。是否有任何方法可以确保单击一次上载的安全?我环顾四周,似乎我被困在这个意义上 公共URL是ClickOnce部署中的一个安全问题。但是,如果您的web服务器安装了windows和.NET,则有一个解决方案。告诉我你有没有?我将不得不为LinuxWeb服务器想出另一种解决方案,以防您遇到这种情况 简明的 首先,关于ClickOnce部署的一些信息。部署应用程序时,在服务器上发出的GET请求是(假定WebDir是服务器上的发布目录)Deployment 保护单击一次web部署的安装,deployment,passwords,clickonce,Deployment,Passwords,Clickonce,我的网站上有一个指向VisualStudio生成的标准发布页面的链接。我担心的是,如果有人发现该页面的URL,他们可以下载我的软件。当然,我可以用密码保护带有链接的页面,但它仍然不能保护下载URL。是否有任何方法可以确保单击一次上载的安全?我环顾四周,似乎我被困在这个意义上 公共URL是ClickOnce部署中的一个安全问题。但是,如果您的web服务器安装了windows和.NET,则有一个解决方案。告诉我你有没有?我将不得不为LinuxWeb服务器想出另一种解决方案,以防您遇到这种情况 简明的
G-1
GET/WebDir/setup.exe
(初始下载)G-2
GET/WebDir/MyApp.Application
(setup.exe-url请求)G-3
GET/WebDir/MyApp.Application
(.Application deployment provider URL请求)G-4
GET/WebDir/Application Files/MyApp_1_0_0/MyApp.exe.manifest
(应用程序清单请求)G-5
GET/WebDir/Application Files/MyApp_1_0_0/MyApp.exe.deploy
和其他.deploy文件。。。(申请文件请求)
实施 现在,解决方案是在服务器上拦截这些文件请求。在IIS上,可以附加自定义HTTPHandler并处理请求。在Apache上,可以使用.htaccess文件将请求重定向到PHP代码。除此之外,您还必须为从服务器下载的客户端实例生成唯一标识符
uid
(可以是您的许可证密钥),并将其放入部署提供程序URL查询参数中
目录结构
在WebDir
中创建一个“应用程序”
文件夹,并限制对/WebDir/Application/
的访问。其余一切都可以放在/WebDir/
文件请求
下面是在windows机器上托管的Apache web服务器上执行的操作:/WebDir/Download.php
Download.php
对用户进行身份验证后,必须从代码向用户发送setup.exe
(可以使用php中的readfile()
)。但是,捕获是引导程序(setup.exe
),安装后将执行GET请求[G-2]。现在不要忘记,您必须验证此文件请求。因此,基本上,在返回文件之前,您可以将“setup.exe-url”
属性更改为包含uid
。例如:将其更改为/WebDir/uid/MyApp.Application
[G-2]。您可以使用更改引导程序的URL属性。.htaccess
文件,将[G-2]重写为/WebDir/Handler.php?user=uid
。从Handler.php
,您可以检查它是否是有效的uid
。如果有效,则必须在部署提供程序URL中包含uid
,并在部署清单中包含“依赖程序集路径”,这样,如果出现升级请求(它实际上请求部署清单),也可以在那里验证用户。添加uid
以查询字符串参数。例如:将其更改为/WebDir/MyApp.application?user=uid
[G-3]。不要忘记,一旦修改清单,您将不得不放弃清单。使用或编写自己的代码来实现这一点uid
=1f3rd)G-1
GET/WebDir/Download.php
操作:返回
setup.exe
,并更改-urlG-2
GET/WebDir/Application/setup.exe/1f3rd/MyApp.Application
操作:重定向、验证用户、更改URL、重新签名并返回文件
G-3
GET/WebDir/Application/setup.exe/MyApp.Application?user=1f3rd
操作:重定向、验证用户并返回文件
G-4
GET/WebDir/Application/1f3rd/Application Files/MyApp_1_0_0_0/MyApp.exe.manifest
操作:重定向、验证用户并返回文件
G-5
GET/WebDir/Application/1f3rd/Application Files/MyApp_1_0_0_0/MyApp.exe.deploy
和其他.deploy文件…
操作:重定向、验证用户并返回文件
专业人士
uid
时,应用程序才会成功部署和升级