我在同一台服务器上有一个公共桌面站点,一个公共移动站点和一个专用Intranet站点。它们都是用C#编写的(ASP.Net 4.0)。
每个人都有自己的代码来处理信用卡付款。我想写一个处理所有3个站点的信用卡付款的应用程序。我希望只能从这3个本地应用程序访问此应用程序。
我知道如何执行此操作的唯一方法是创建Web服务并限制到localhost的流量。
有更好的(“正确的”)方式吗?我应该创建一个Windows服务吗?
答案 0 :(得分:0)
一般方法是合理的。但是,我不仅依赖于限制访问localhost的访问权限。稍后某个时间点的错误配置会暴露您的付款网络服务。此外,如果服务器受到威胁,则在该本地主机上运行的任何进程都将具有未经检查的访问权限。
始终使用身份验证来保护您的付款网络服务。
如果您必须在与前端网站相同的物理盒上部署身份验证服务,请特别注意保护支付服务(例如,如果您要存储信用卡号或与信用卡帐户相关的PII,例如姓名,地址,等等)。 ..确保数据库正确安全)。如果可能的话,将支付服务放在与面向公众(或面向同事)网站分开的附加层中,并受适当的防火墙规则保护。
答案 1 :(得分:0)
如果您有调用应用程序,我认为Windows服务不是一个好选择。据我所知,我们可以考虑使用NetTcpBinding和NetNamedPipeBinding。
NetTcpBinding - 适用于WCF应用程序之间跨机器通信的安全且优化的绑定。
NetNamedPipeBinding - 一种安全,可靠,优化的绑定,适用于WCF应用程序之间的机上通信。