一个网站的风险有这几个风险点:
一个是来自 web 应用程序本身的漏洞,比如你说的注入,还有跨站脚本这些。
第二是 web 服务器环境的漏洞,比如 Java 项目使用的 tomcat ,weblogic ,
还有.net 网站使用的 iis ,还有 php 使用的 apache ,nginx 等。
第三个是主机漏洞,来自操作系统的漏洞。比如比较经典的永恒之蓝。
参考上述三点。即使是你保证了你的 web 程序没漏洞,但也不能防止 web 中间件的漏洞和主机操作系统的漏洞。
对于巨石应用,所有环境都部署在一台服务器上的,安全比较好做。三个层面做好就行了。
但是对于一个大型企业,不可能只有一个网站应用。当网站系统和服务器主机数量成规模了,就比较考研运维人员的能力了。
对于攻击者,我们只会挑薄弱的地方下手。找到存在漏洞的站点作为立足点,逐步进入企业内网,并横向移动直到获取域控权限。
没有永远安全的系统。随着时间推移,上面提到的三个方向,一定会出现漏洞,而随着网站数据增加,重要的系统迁移到新系统成本反而很大,大部分企业不会重视,不会为了安全原因投钱开发一个新系统。现在很多企业,甚至还用着 centos6 ,用着 windows7 。
当所有技术手段都失效了,我们还可以用社会工程学。
鱼叉攻击,水坑攻击这些。
参考最近西北工业大学的入侵事件。
总之,安全是整体,具有木桶效用。并不是说前后端分离了,就安全了。