I'm working on consolidating our company's various information systems into a single web based application. No small feat, but one that we're going to gradually roll out and improve upon as time goes on.

The application is divided into two areas - a staff only portal, for the Intranet, as well as a public portal for customers to access.

I have no problems creating this, but I'm not sure as how to go about hosting it. Security is the biggest concern that I have. Given that our database will be hosting sensitive information (and you can be sure that I will be encrypting and hashing all the important stuff as well as all the usual XSS/CSRF/SQL Injection)

Do I run both applications and the database on the same server? Do I run the internal stuff internally where I can keep it safe, and have the public system make calls via a Web API?

What's the best balance of maintainability, security, and performance in this instance?

有帮助吗?

解决方案

Systems like this usually have a complex setup. Your staff portal should be housed on a machine inside your company network, and should not be accessible from the public network.

The public portal, of course, must be on a machine that is accessible from the public network. The machine should have everything turned off that you don't need, and should have an external firewall blocking network ports you aren't using - assume that someone will attempt to break into the machine, and provide them as few paths to try as possible. This machine will need network access to the database, but that access path should be tightly restricted as well, to prevent a successful attacker from entering your secure network.

The database should be on a third machine, accessible to the two portal machines, but again, heavily firewalled to prevent attempts to access the database without the portal code.

其他提示

1.devide your application based on concerns

2.make applications as much independent as possible

3.provide interfaces to all the applciations, implement access management system and provide access based on your org decision public/private (this will help in the long run)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top