我对桌面应用程序没有太多的经验,但是如果必须创建客户端服务器桌面应用程序,则可以通过Web服务来进行数据访问。我相信通过Web服务进行的数据访问可提供安全性-我不需要传递数据库服务器的用户名和密码等。
在使用Web服务之前,数据库应用程序是如何做到这一点的?是否已将所有重要的数据库信息传递到桌面应用程序的安装中?如果是这样,程序员如何管理安全性方面?还是程序员使用类似于Web服务的内容?
我对桌面应用程序没有太多的经验,但是如果必须创建客户端服务器桌面应用程序,则可以通过Web服务来进行数据访问。我相信通过Web服务进行的数据访问可提供安全性-我不需要传递数据库服务器的用户名和密码等。
在使用Web服务之前,数据库应用程序是如何做到这一点的?是否已将所有重要的数据库信息传递到桌面应用程序的安装中?如果是这样,程序员如何管理安全性方面?还是程序员使用类似于Web服务的内容?
Answers:
取决于您所谓的Web服务。
在WSDL和REST之前,仍然有HTTP,因此基本上您现在可以做的所有事情也可以以前完成。
缺乏一致性(这就是为什么首先创建WSDL和REST的原因),但是它提供了您正在谈论的相同级别的数据机密性和安全性。
实际上,您也可以避免使用HTTP:您可以草拟自己的协议,并使用自定义服务器和自定义客户端,这将打开该服务器的套接字并获取所需的数据(或发布数据)。在这里,您失去了HTTP的所有标准化好处,但又一次,您没有将访问数据库的权限授予客户端。
啊,当我们有木棍和石头的时候。
在使用Internet之前,我们有一种称为“客户端/服务器”架构和局域网的东西。如果您不打算与数英里外的服务器建立连接,则这些网络可以很好地完成大多数任务。如果愿意,您甚至可以建立驱动器号并使用与远程硬盘驱动器之类的文件服务器的连接。如果您在几英里远的地方,则可以使用广域网来执行基本相同的操作,尽管速度较慢且费用较高。
到说话的廉价的方式远程是通过跨使用的设备称为调制解调器电话线的信息,如果你想拼凑一些地方两台计算机通过计算机应用彼此交谈,你做到了,你今天就以同样的方式:通过建立通信协议。这根本没有什么神奇的;双方只需要就所有字节的含义达成一致即可。
从Internet的早期开始,就有各种方法可以使机器跨Internet通信。Web服务只是本周的最新消息。
只是要先弄清楚一些概念...
我相信通过Web服务进行的数据访问可提供安全性-我不需要传递数据库服务器的用户名和密码等。
我认为您在上面的陈述中混淆了(1)传输层安全性(TLS)和(2)访问控制的概念...是否需要提供用户名和密码与是否提供Web服务无关通过(1)加密通道和(2)身份验证(例如API密钥)提供。
编写得非常糟糕的Web服务可能仍需要通过HTTP以纯文本格式发送密码。一个写得不好的人可能会通过HTTPS来做到这一点(安全,但是一旦被破坏,例如通过中间人攻击,就容易受到滥用)。在验证和权利控制得到验证之后,编写更好的Web服务应基于其他输入(例如会话ID)在内部处理数据库连接。
回到要点,@ marcus对您的问题的评论实质上就是它。安全方面的处理与“现代”技术没有什么不同,并且涉及诸如以下的实现问题:
X.X.X.X
使用用户名和密码以IP连接到数据库,然后运行查询INSERT INTO user_address ...
?了解更多信息: