我创建了一个服务(WCF),它充当数据库的后端。现在它执行基本操作,如INSERT,SELECT等。我已在本地运行它,现在是时候将她暴露在互联网上并输入'生产'。这样做有最好的做法吗?请记住,此服务将作为Windows服务(而不是IIS)托管在PC上。这是我第一次将Windows服务投入生产,所以我对细节很朦胧,但我认为这是主要的想法:
在服务上:检查“新手”错误,例如SQL注入。将最大邮件大小设置为略高于我的服务应传输的最大邮件的大小。还将自签名X.509证书升级为CA颁发的证书。 (在哪里存储此证书?在PC上本地?)
在PC上:完全修补的软件(操作系统等)和Windows防火墙,其中包含一组特定的规则,只允许在使用的端口上进行通信(我认为最安全的方法是使用Windows工具通过Windows防火墙允许程序或功能?)。此外,还有一个更新的防病毒软件。
在网络上:对于网络路由器,端口转发正在使用的相应端口(基地址被声明为http://localhost:8080
所以我猜HTTP端口80和HTTPS端口443?我正在使用消息等级安全。)
一般预防措施:对服务进行完整消息记录,以分析流量和潜在攻击者。还运行一个网络入侵检测系统,如Snort,以便我晚上睡得更好。
我错过了什么明显的东西吗?我也应该在IIS中托管,在安全交换机上有人说如果我没有把代码放在Web服务器后面,我会容易受到HTTP攻击。但是我还没有在其他地方读到这个