防止更改 Web 服务 URL

Posted

技术标签:

【中文标题】防止更改 Web 服务 URL【英文标题】:Prevent Webservice URL from being changed 【发布时间】:2019-03-06 19:03:40 【问题描述】:

在我的 WinForms 应用程序中,我有一个登录窗口,它使用 Web 服务来验证用户名/密码以授予访问权限。我看到的问题是,一旦我编译了我的应用程序,它就会生成一个 appname.exe.config,其中包含 Web 服务端点的 URL。

用户可以在文本编辑器中修改此 URL。这不会使应用程序更容易破解,因为人们可以运行具有相同方法名称的虚拟 Web 服务并更改配置文件中的 URL 并简单地返回“true”以获得访问权限?

有没有办法让 Visual Studio 不使用 app.config 来存储 URL 并将其硬编码在我的应用程序中,这样就不能轻易更改它?如果我只是删除此配置文件,我会收到一个错误,即找不到默认端点元素。

任何指导将不胜感激。

【问题讨论】:

Encrypting connectionStrings section - utility for app.config的可能重复 【参考方案1】:

您如何调用网络服务? 你是在代码中还是通过其他方式?

也许您可以创建一个静态类来存储您的 Web 服务 URL 并获取 URL 以使用类似 staticClass.getURL() 的方法。

【讨论】:

我在代码中调用它。看起来默认构造函数总是使用 app.config 文件,但是还有其他重载可以让我手动指定端点地址,这在我的情况下会起作用,因为我可以简单地对我的 URL 进行硬编码,即使存在 app.config ,它不会被使用。谢谢您的帮助! BasicHttpsBinding binding = new BasicHttpsBinding(); EndpointAddress address = new EndpointAddress("https://url/service.asmx"); WebService.WSSoapClient myService = new WebService.WSSoapClient(binding, address); 只是指出,如果您的最终目标是适当地保护您的应用程序,这不是一个解决方案。您应该投资一种方法来证明用户已通过正确身份验证,例如您的身份验证服务可以发出客户端应用程序可以验证的 JWT。

以上是关于防止更改 Web 服务 URL的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Apache Camel 中更改 SOAP Web 服务端点 URL 和 WSDL URL

本地服务器和 tomcat 之间的 url 上下文更改

防止用户在表单中输入 URL

java web 如何防止 用户绕过js验证,直接地址栏提交表单或自己编写html页面,提交数据到服务器?

Spring 安全更改重定向 URL 以使用 HTTPS 而不是 HTTP

Web服务------Nginx网页优化(隐藏版本号,日志分割,更改进程数,网页压缩,防盗链详解)