如何实现网页防篡改

最近想和朋友搞一个防篡改的东西,我自己罗列了一些,咨询下各位篡改网页的途径和相应的方法,小弟不才,不胜赐教.

一、网页篡改的途径
(1)SQL注入后获取Webshell:
黑客通过web应用程序的漏洞,通过SQL语句提交非法的语句到数据,通过系统以及第三方软件的漏洞获取web的控制权限或者服务器权限;
(2)XSS漏洞引入恶意HTML界面:
被动的跨站攻击可以在合法的地方引入非法的HTML或者JS代码,从而让访问者“正常”的改变页面内容;例如:校内网蠕虫;
(3)控制了Web服务器:
攻击者可能通过服务器或者第三方的漏洞,获取了服务器权限、数据库管理权限进而修改页面;
(4)控制了DNS服务器:
攻击者对网站的域名服务器进行渗透,获取了域名的解析权限,改变了解析地址以达到篡改的效果;例如:百度被黑事件;
(5)遭遇了ARP攻击:
攻击者可能会针对web服务器所在的外段进行攻击,当掌握了同网段某台机器以后对web服务器所在的主机发送ARP欺骗包,引诱访问者或者web服务器指向其他页面以达到篡改效果;

二、网页防篡改的途径
(1)给正常文件一个通行证;
将正常的程序文件数量、名称记录下来,并保存每一个正常文件的MD5散列做成数字签名存入数据库;如果当遇到黑客攻击修改主页、挂马、提交webshell的时候,由于这些文件被修改过或者是新提交的,没有在数据库中存在,则将其删除或者恢复以达到防护效果;
(2)检测和防护SQL注入攻击;
通过过滤SQL危险字符如:“’、select、where、insert、,、;”等等将其进行无害化编码或者转码,从源头遏止;对提交到web服务器的数据报进行过滤检测是否含有“eval、wscript.shell、iframe”等等;
(3)检测和防护DNS攻击解析;
不断在本地通过nslookup解析域名以监视域名的指向是否合法;
(4)检测和防护ARP攻击;
绑定MAC地址,检测ARP攻击并过滤掉危险的ARP数据报;
(5)过滤对WEB服务器的请求;
设置访问控制列表,设置IP黑名单和白名单过滤掉非法访问后台的IP;对web服务器文件的请求进行文件预解析,对比解析的文件与原文件差异,存在差异的取源文件返回请求;
(6)做好集群或者数据库加密;
对于NT系统设置好文件夹权限,控制因操作失误所带来的损失;对于SQL 2005可以设置管理IP和数据库加密,切断数据库篡改的源头;
(7)加强培训
加强安全意识培训,操作合理化培训,从程序自身的源头遏制,从管理员自身的源头遏制。

时间: 2024-08-29 05:05:25

如何实现网页防篡改的相关文章

网页防篡改系统的使用体验

年初上线一款市场占有率很高的网页防篡改系统,一个目的是真正了解一下防篡改系统的结构,二.当然提高网站的防篡改防护能力.三.合规.下面来简单说一下整体感受; (1)防篡改系统的结构 如图,防篡改系统分为两部分,分别部署于两台服务器. 一台作为信息上传发布的服务器,主要是由网站管理员更新网站页面文件,后台数据等. 另外一台作为对外的web服务器. web服务器和发布服务器的网站配置完全一样,包括web server配置,网站目录路径等,两台服务器如同一个镜像. web服务器,对互联网公开发布,互联网

政府网站防篡改解决方案

政府网站防篡改解决方案        互联网的出现,被誉为 20 世纪最伟大的发明,它彻底改变了人们传统的生活方式,对现代社会产生了巨大影响.政府网站已成为政府电子政务的数字门户,是对外宣传国家政策法规的手段,是与社会大众交互.向社会大众提供服务和展现国家民主政治的重要窗口.随着网站数量不断增加,与之相对应的是网站受攻击的情况也越来越多.网站被攻击的各类情况中,网站页面被篡改事件给政府带来的影响尤其恶劣,影响面最广.尤其是含有政治攻击色彩的篡改,会对政府形象造成严重损害. 2006 年 3 月

JavaScript中的防篡改对象

由于JavaScript共享的特性,任何对象都可以被放在同一环境下运行的代码修改. 例如: var person = {name:"caibin'} person.age = 21; 即使第一行定义了完整的person对象,那么第二行代码仍然可以对其添加属性,删除属性等. 我们有三个方法可以防止你做出这些行为. 一.不可扩展对象: 先来看person本身的扩展性: Object.isExtensible(person); // true 接下来执行: Object.preventExtensio

使用数字签名实现数据库记录防篡改(Java实现)

本文大纲 一.提出问题 二.数字签名 三.实现步骤 四.参考代码 五.后记 六.参考资料 一.提出问题 最近在做一个项目,需要对一个现成的产品的数据库进行操作,增加额外的功能.为此,需要对该产品对数据库有什么操作进行研究(至于怎么监控一个产品的操作会引发什么数据库操作,以后会详细解说).本来已经对数据库的操作了如指掌的,无意中发现数据库表里的每条记录都会有这样一个字段: 这感觉不妙了,字段名叫signature,顾名思义,就是签名的意思呀.难道数据库表中的每条记录都会有签名?也就是说如果我不能正

aip接口中对url参数md5加密防篡改的原理

目前网上所有开放api的网站中,数据的调用都是采用同一种方式,即: http:www.xxx.com/aa=1&bb=2...,原后对这些参数按字典顺序排序后进行md5加密,将md5加密串与接口方提供的 key接在参数后面提交,如http:www.xxx.com/aa=1&bb=2&sg=md5(...)& key=3432423,服务器端把这些参数接收后以同样的方式生成md5与提交的sg参数核对是否一致,以达到防止篡改与验证合法性的目的. 我现在的疑问是,既然参数可以被篡

WebAPI 用户认证防篡改实现(一)MD5签名获取

在开始前先说下防篡改机制的原理,如果已经接触过支付宝的可以跳过此部分 防篡改,顾名思义就是防止有人恶意篡改请求数据以达到恶意攻击的目的,那要怎么才能实现这样的目的呢?其实很简单,将要请求的数据加上合作号.合作Key按规则组织成一个字符串,获取对应的MD5摘要,然后将该摘要及合作号同时作为请求的一部分一起传递(合作Key禁止传递) 下面进行举例: 假定需要进行签名的参数如下(以json格式举例): {'partner': '3122131212','orderNo':'1234567'} 对数组里

WebAPI 用户认证防篡改实现(二)AbsBaseAuthenticationAttribute

WebAPI的用户身份认证与MVC一样都是通过Attribute进行验证,此处定义了一个抽象基类,子类需要实现根据合作号获取合作用户信息的抽象方法 AbsBaseAuthenticationAttribute using System; using System.Web; using System.Collections.Specialized; using System.Net; using System.Net.Http; using System.Text.RegularExpressio

WebApi系列~安全校验中的防篡改和防复用

回到目录 web api越来越火,因为它的跨平台,因为它的简单,因为它支持xml,json等流行的数据协议,我们在开发基于面向服务的API时,有个问题一直在困扰着我们,那就是数据的安全,请求的安全,一般所说的安全也无非就是请求的防篡改和请求的防复用,例如,你向API发一个查询用户账户的请求,在这个过程中,你可能要传递用户ID,用户所在项目ID等,而现在拦截工具如此盛行,很容易就可以把它的请求拦截,然后篡改,再转发,这样你的API就是不安全的,而对于订单,账户模块这种糟糕的API设计更是致命的,可

深入理解javascript之防篡改对象

javascript中对象内置有多个属性Configurable,Writable,Enumerable,Value,Get和Set,来控制属性的行为.同样的ES5也有几个方法,来指定对象的行为.我们知道,javascript中的对象是可以共享的,也是默认可拓展的: //一旦将对象设置防篡改,就不能撤销了 //众所周知,一般的对象是可以随意拓展的 var person = {name:'liufang'}; person.age = 22; document.write(person.age+"