防止网页被篡改的技术要点解析
发布日期:2020/07/28 作者: 祥云时代 点击:
监听工具
服务程序使用Java的JNotify组件进行监控,程序运行后调用监控类,监控类继承于JNotifyListener接口,需要开发者重写fileRenamed、fileModified、fileCreated等方法,发生了某个事件就执行对应方法。
使用Drools引擎实现业务逻辑规则化
文件合法性检查归结为一组业务规则的执行,建议使用Drools引擎来实现业务逻辑的规则化,开发者可以针对各类触发事件,分别编写出每组业务规则并形成DRL文件,Drools引擎解析、执行文件包含的所有规则,这大大简化了传统的高级语言编程,以表2的时间限制规则为例,只要将它的Salience属性定义为四个规则中的最大值,就可以最先执行,参数6:30和23:00可以在规则中直接修改且不需要重新编译,此规则调用外部java类静态方法检测时间的合法性,这样就将烟台网站建设的业务逻辑和类库代码分离开了。
IP屏蔽技术
若发现网站被上传了非法文件,可以根据文件上传时间或者事件触发时间在网站日志中查找入侵IP,重点查找POST操作,发现后使用Java语句调用IPTABLES命令实现IP屏蔽。在Windows系统中可以调用IPSEC安全策略中的netsh命令实现IP屏蔽。
使用订购的中国移动云MAS服务,可以使用MAS服务提供的接口编写Java短信类,将非法文件的文件名、处理方式和违反的规则名称等参数写入预定义模板发送给网站管理员,实现24小时短信通知。
入侵者为了找到网站漏洞,总是先用工具软件扫描网站,尤其是最常见的登录和管理页面,例如login.asp、index.asp等,这为网站防御提供了一个蜜罐“诱骗”思路[5][6]:将正常使用的后台登录和管理页面重命名隐藏起来,然后在网站根目录下添加login或index等蜜罐页面,这些页面不提供任何服务功能,正常用户应该访问不到,只是是为了引诱入侵者访问。
服务程序定时读取日志文件,每次读取从上次日志结尾开始,利用正则表达式检索访问了蜜罐页面的IP,这些IP一定是尝试入侵者,由于入侵者找到漏洞并成功入侵总是需要时间的,在不严重增加服务器负担的情况下,采用较小时间间隔定时检索日志,可以及时发现大多数入侵企图。
除了发现蜜罐页面的来访IP之外,烟台网站建设还可以同时检索SQL注入和XSS入侵痕迹,它们的表现是在GET或POST请求的URL字符串中含有非法字符和单词,包括:
1.西文的单引号、双引号、中括号和星号等,重点检查单引号。
2.select、or、concat、from、union、where、char、group、administrator、count、alert等。
来访的URL字符串都记录在网站日志文件中,为了尽可能发现攻击性URL,建议管理员将待检索的非法字符和单词写成正则表达式去匹配URL,若匹配则说明此URL含有攻击,例如“.*select.*or”表示在URL查找select和or,匹配成功表明此URL存在SQL攻击。
由于SQL的攻击URL复杂多变,管理员需要不断更新,而Drools规则的修改不需要重新编译程序源代码,所以建议将待检索的正则表达式串编入Drools规则,在规则中调用外部类静态方法验证来访URL是否与之匹配。
建议以命令行方式在服务器上安装程序和所需的Drools开发包,以后台服务形式24小时伴随网站运行,为了保证服务在线运行,将程序设置为开机启动并定时检查进程是否存在,在Window Server中使用计划任务和PowerShell实现,在Linux系统中使用Crond和Shell实现。