请问
1、直接操作数据库的方式有什么弊端?
2、这个“后台服务”,正常应该怎么实现,有没有现成的开源项目参考?
13 个解决方案
#1
容易暴露数据库账户密码啊,有了你家的钥匙,我随时都能开你家的门
“后台服务”有很多种方式,最简单的你可以写个ashx的处理程序请求参数,让它去执行数据库操作,返回成功失败给客户端进行显示就可以了
还有net Remoting,Web Service,wcf,webapi等等
“后台服务”有很多种方式,最简单的你可以写个ashx的处理程序请求参数,让它去执行数据库操作,返回成功失败给客户端进行显示就可以了
还有net Remoting,Web Service,wcf,webapi等等
#2
1应该访问接口,而不是直接操作数据库。不然配置文件一查可能就知道了。
虽然你可以加密。
2 后台服务,在你说的这里就是接口,例如webapi,webservice等等
虽然你可以加密。
2 后台服务,在你说的这里就是接口,例如webapi,webservice等等
#3
提问者教条主义,人云亦云,中国式的过马路
你就写个winForm程序,登陆数据库的用户名、密码、ip、端口等都硬编码写死(换数据库,你的升级软件)
发送所有信息前都加密,数据库保存密文,用的时候回来再解密(网上截获了你的信息也没用)
何况数据库本来有完善的加密系统,你干脆不用二次加密,只用程序加密就可以了
软件本身用C++加个壳,再用硬件加密狗加壳
你叫他先破了再说
你就写个winForm程序,登陆数据库的用户名、密码、ip、端口等都硬编码写死(换数据库,你的升级软件)
发送所有信息前都加密,数据库保存密文,用的时候回来再解密(网上截获了你的信息也没用)
何况数据库本来有完善的加密系统,你干脆不用二次加密,只用程序加密就可以了
软件本身用C++加个壳,再用硬件加密狗加壳
你叫他先破了再说
#4
当然没有破不了东西,要看成本了,10w以下的东西,我看够用了
普遍的做法,是加了服务层。这方面,你只研究wcf就行了,这个是以往同类技术的一个升级
普遍的做法,是加了服务层。这方面,你只研究wcf就行了,这个是以往同类技术的一个升级
#5
简单来说就是把数据库连接这一步骤写成一个接口,客户端访问接口,不直接和数据库发生交互。这样就是安全一点。
#6
我说的提问者,指面试官
#7
比如说你访问微信、支付宝,或者随便一个在公网上正常运营的互联网公司的系统,你的 APP 或者网页是用同一个账号密码打开人家一个数据库吗?
后台有几个数据库、分别是什么类型的数据库、有几万台服务器、有几十套SOA服务系统分别支持前端访问,这个对前端都是屏蔽的。前端只要访问一个接入服务器即可,根本不接触后台架构。
这是网络软件的三层架构。
后台有几个数据库、分别是什么类型的数据库、有几万台服务器、有几十套SOA服务系统分别支持前端访问,这个对前端都是屏蔽的。前端只要访问一个接入服务器即可,根本不接触后台架构。
这是网络软件的三层架构。
#8
开发设计一个大一点的运营的网络系统,首先就是对外发布业务服务接口。然后再开发一个或者多个客户端产品,不同的客户端产品可以基于同一套服务协议而分别开发。
传统的局域网内做一个 OA 桌面小程序,会使用在调用数据库的驱动来直接连接。但这不是大型、城域网和公网上的 c/s 架构应用系统。不仅仅考虑所有桌面客户端去发布的程序都用同一个账号密码登录数据库有没有“危险”,更多地是那些设计师天生就从互联网的思维方式来设计架构,所以为了运营一个成功的互联网服务而准备。
传统的局域网内做一个 OA 桌面小程序,会使用在调用数据库的驱动来直接连接。但这不是大型、城域网和公网上的 c/s 架构应用系统。不仅仅考虑所有桌面客户端去发布的程序都用同一个账号密码登录数据库有没有“危险”,更多地是那些设计师天生就从互联网的思维方式来设计架构,所以为了运营一个成功的互联网服务而准备。
#9
比如说我们的手机收发语音数据包、收发短信,那并不是什么把语音数据包增删改查到数据库里。再比如说计费,那是后台服务异步进行的任务。比如说任何一种业务处理,比如说两个窗口上的随便点击按钮来模拟对战游戏.......随便一个现代的网络软件设计对于专业的网络软件设计师的要求,都是要开发即时通讯、即时访问业务服务器功能的系统。
而那种只会在局域网里在窗体调用关系数据库的编程程序员,那么所学过的技术肯定很少,可能所有互联网时代需要的通讯技术都没有学过。这是面试时考虑的。
而那种只会在局域网里在窗体调用关系数据库的编程程序员,那么所学过的技术肯定很少,可能所有互联网时代需要的通讯技术都没有学过。这是面试时考虑的。
#10
直接连接数据库操作很危险吗?
显然你是从安全角度出发的,其实这种操作都是在局域网内的,一般不需要考虑安全问题
真正要考虑的是运行成本,当然你要用盗版的,就当我什么也没说
显然你是从安全角度出发的,其实这种操作都是在局域网内的,一般不需要考虑安全问题
真正要考虑的是运行成本,当然你要用盗版的,就当我什么也没说
#11
比如说我们开发一个网络系统,然后用户自己的服务器买没有买来,于是公司就要在自己的办公室里的一个对外服务器上部署这个程序,然后让用户的将近100个操作人员从几十公里、几百公里以外来访问。然后等用户自己的服务器到位了,它们其实也不是只在一个大房间局域网里用的,也要远程使用,甚至移动APP访问。
分析各种知识点,要看你最后主要的点是否已经搞清楚了。假设你仅仅纠结于“和危险吗?”这一个点,那么你可能给这一个点所配套的权重会发生严重偏差。
分析各种知识点,要看你最后主要的点是否已经搞清楚了。假设你仅仅纠结于“和危险吗?”这一个点,那么你可能给这一个点所配套的权重会发生严重偏差。
#12
面试官没有那么多时间给你解释,他心目中有他们需要的技术的底线、甚至哪怕并不急迫但是需要储备的技术人才。
人家就是要全栈开发能力,至少是有哪怕是 web 服务的开发经验的人,起码在做项目时能顶点事儿。如果只是会做一个“窗口”程序,那就不招聘了。
人家就是要全栈开发能力,至少是有哪怕是 web 服务的开发经验的人,起码在做项目时能顶点事儿。如果只是会做一个“窗口”程序,那就不招聘了。
#13
跟着大神们总能接触到很多新东西,我是一窍不通。
参考下这个书《31天学会CRM项目开发》,这个里面就是不直接连接数据库,是通过Web服务程序。
参考下这个书《31天学会CRM项目开发》,这个里面就是不直接连接数据库,是通过Web服务程序。
#1
容易暴露数据库账户密码啊,有了你家的钥匙,我随时都能开你家的门
“后台服务”有很多种方式,最简单的你可以写个ashx的处理程序请求参数,让它去执行数据库操作,返回成功失败给客户端进行显示就可以了
还有net Remoting,Web Service,wcf,webapi等等
“后台服务”有很多种方式,最简单的你可以写个ashx的处理程序请求参数,让它去执行数据库操作,返回成功失败给客户端进行显示就可以了
还有net Remoting,Web Service,wcf,webapi等等
#2
1应该访问接口,而不是直接操作数据库。不然配置文件一查可能就知道了。
虽然你可以加密。
2 后台服务,在你说的这里就是接口,例如webapi,webservice等等
虽然你可以加密。
2 后台服务,在你说的这里就是接口,例如webapi,webservice等等
#3
提问者教条主义,人云亦云,中国式的过马路
你就写个winForm程序,登陆数据库的用户名、密码、ip、端口等都硬编码写死(换数据库,你的升级软件)
发送所有信息前都加密,数据库保存密文,用的时候回来再解密(网上截获了你的信息也没用)
何况数据库本来有完善的加密系统,你干脆不用二次加密,只用程序加密就可以了
软件本身用C++加个壳,再用硬件加密狗加壳
你叫他先破了再说
你就写个winForm程序,登陆数据库的用户名、密码、ip、端口等都硬编码写死(换数据库,你的升级软件)
发送所有信息前都加密,数据库保存密文,用的时候回来再解密(网上截获了你的信息也没用)
何况数据库本来有完善的加密系统,你干脆不用二次加密,只用程序加密就可以了
软件本身用C++加个壳,再用硬件加密狗加壳
你叫他先破了再说
#4
当然没有破不了东西,要看成本了,10w以下的东西,我看够用了
普遍的做法,是加了服务层。这方面,你只研究wcf就行了,这个是以往同类技术的一个升级
普遍的做法,是加了服务层。这方面,你只研究wcf就行了,这个是以往同类技术的一个升级
#5
简单来说就是把数据库连接这一步骤写成一个接口,客户端访问接口,不直接和数据库发生交互。这样就是安全一点。
#6
我说的提问者,指面试官
#7
比如说你访问微信、支付宝,或者随便一个在公网上正常运营的互联网公司的系统,你的 APP 或者网页是用同一个账号密码打开人家一个数据库吗?
后台有几个数据库、分别是什么类型的数据库、有几万台服务器、有几十套SOA服务系统分别支持前端访问,这个对前端都是屏蔽的。前端只要访问一个接入服务器即可,根本不接触后台架构。
这是网络软件的三层架构。
后台有几个数据库、分别是什么类型的数据库、有几万台服务器、有几十套SOA服务系统分别支持前端访问,这个对前端都是屏蔽的。前端只要访问一个接入服务器即可,根本不接触后台架构。
这是网络软件的三层架构。
#8
开发设计一个大一点的运营的网络系统,首先就是对外发布业务服务接口。然后再开发一个或者多个客户端产品,不同的客户端产品可以基于同一套服务协议而分别开发。
传统的局域网内做一个 OA 桌面小程序,会使用在调用数据库的驱动来直接连接。但这不是大型、城域网和公网上的 c/s 架构应用系统。不仅仅考虑所有桌面客户端去发布的程序都用同一个账号密码登录数据库有没有“危险”,更多地是那些设计师天生就从互联网的思维方式来设计架构,所以为了运营一个成功的互联网服务而准备。
传统的局域网内做一个 OA 桌面小程序,会使用在调用数据库的驱动来直接连接。但这不是大型、城域网和公网上的 c/s 架构应用系统。不仅仅考虑所有桌面客户端去发布的程序都用同一个账号密码登录数据库有没有“危险”,更多地是那些设计师天生就从互联网的思维方式来设计架构,所以为了运营一个成功的互联网服务而准备。
#9
比如说我们的手机收发语音数据包、收发短信,那并不是什么把语音数据包增删改查到数据库里。再比如说计费,那是后台服务异步进行的任务。比如说任何一种业务处理,比如说两个窗口上的随便点击按钮来模拟对战游戏.......随便一个现代的网络软件设计对于专业的网络软件设计师的要求,都是要开发即时通讯、即时访问业务服务器功能的系统。
而那种只会在局域网里在窗体调用关系数据库的编程程序员,那么所学过的技术肯定很少,可能所有互联网时代需要的通讯技术都没有学过。这是面试时考虑的。
而那种只会在局域网里在窗体调用关系数据库的编程程序员,那么所学过的技术肯定很少,可能所有互联网时代需要的通讯技术都没有学过。这是面试时考虑的。
#10
直接连接数据库操作很危险吗?
显然你是从安全角度出发的,其实这种操作都是在局域网内的,一般不需要考虑安全问题
真正要考虑的是运行成本,当然你要用盗版的,就当我什么也没说
显然你是从安全角度出发的,其实这种操作都是在局域网内的,一般不需要考虑安全问题
真正要考虑的是运行成本,当然你要用盗版的,就当我什么也没说
#11
比如说我们开发一个网络系统,然后用户自己的服务器买没有买来,于是公司就要在自己的办公室里的一个对外服务器上部署这个程序,然后让用户的将近100个操作人员从几十公里、几百公里以外来访问。然后等用户自己的服务器到位了,它们其实也不是只在一个大房间局域网里用的,也要远程使用,甚至移动APP访问。
分析各种知识点,要看你最后主要的点是否已经搞清楚了。假设你仅仅纠结于“和危险吗?”这一个点,那么你可能给这一个点所配套的权重会发生严重偏差。
分析各种知识点,要看你最后主要的点是否已经搞清楚了。假设你仅仅纠结于“和危险吗?”这一个点,那么你可能给这一个点所配套的权重会发生严重偏差。
#12
面试官没有那么多时间给你解释,他心目中有他们需要的技术的底线、甚至哪怕并不急迫但是需要储备的技术人才。
人家就是要全栈开发能力,至少是有哪怕是 web 服务的开发经验的人,起码在做项目时能顶点事儿。如果只是会做一个“窗口”程序,那就不招聘了。
人家就是要全栈开发能力,至少是有哪怕是 web 服务的开发经验的人,起码在做项目时能顶点事儿。如果只是会做一个“窗口”程序,那就不招聘了。
#13
跟着大神们总能接触到很多新东西,我是一窍不通。
参考下这个书《31天学会CRM项目开发》,这个里面就是不直接连接数据库,是通过Web服务程序。
参考下这个书《31天学会CRM项目开发》,这个里面就是不直接连接数据库,是通过Web服务程序。