网站的安全校验

问题概述

XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(same origin policy)。这种类型的漏洞由于被黑客用来编写危害性更大的网络钓鱼(Phishing)攻击而变得广为人知。对于跨站脚本攻击,黑客界共识是:跨站脚本攻击是新型的“缓冲区溢出攻击“,而JavaScript是新型的“ShellCode”。             

------来着百度百科

 

注入举例:

用户在系统可以进行输入数据的地方如:用户名用户直接把名字编辑为:

<script>alert(1)</script>

那么所有展现该用户名字的页面都会出现一个提示对话框。

如何防止

首先我们要了解数据的流向:

用户界面中输入数据----经过项目的拦截器过滤器后台业务处理通过getParameter等类似方法获取参数---保存数据库-----界面显示

 

第一个环节处理:

用户界面中输入在所有页面提交位置过滤把特殊字符转义。

不太现实工作量大,且用户也可以修改提交的数据完全无法控制。

第二个环节处理:

拦截器控制

首先我们想到的是定义个过滤器在web.xml中配置然后在过滤器中得到用户输入的参数,然后对其进行转义处理,然后重新设置Parameter参数。但是很快你就会发现Parameter参数是只读的不允许修改不信你自己试下。

 

(推荐下面的这个方法)

如果用了jfinal框架或者你的代码已经完成不想去做太大修改。

其实可以这样重写getParametergetParameterValuesgetParameterMap的方法

步骤一:

定义自己的HttpServletRequestWrapper


对用户输入的值调用自定义的check方法进行转义

Uncheck 方法对外提供,因为这种方式把用户所有的输入参数都进行了转义,但是问题来了有的地方确实不需要转义例如cms系统中有些文章内容可能就是一些html。针对这种情况可以在业务处理中对转义后的内容调用uncheck进行还原。

步骤二:

定义自己的过滤器


让自己的HttpServletRequestWrapper去获取用户的参数输入

步骤三:

配置web.xml

web.xml中配置一个过滤器要放在前面

 

完成。

 

第三个环节处理:

业务处理

requestgetParametergetParameterValuesgetParameterMap做一次二次封装这个方法很容易实现。

如果你项目已经完成想加入安全校验这样就改动地方就太多了。

 

第四个环节处理:

在保存数据库时候处理例如jfinal框架可以重写modelset方法对值进行转义可以扩展一个接口 getUncheck()获取当前model不需要转义的属性名称 set时候对其进行过滤不转义。

 

或者重写jfinalsave update方法对用户输入值进行转义。同样扩展一个接口 getUncheck()获取当前model不需要转义的属性名称 save update时候对其进行过滤不转义。

同样这样的方式也不舍用与已经完成的项目改动地方有点多。

第五个环节进行处理:

页面展现

页面取值都是通过后台setAttribute然后前端进行取值,可以在setAttribute把数据库的值进行一次转义。

 

优点:改动小用户输入什么就存入什么100%还原可查(意义不大)

缺点: 一般数据保存的次数远小于展现的次数 读的次数 >> 写的次数,每次展现的时候都会对所有数据进行一次转义浪费服务器资源。用时间换空间不划算。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大型网站架构演化 大型网站软件系统的特点 大型网站架构演化发展历程 初始阶段 应用服务和数据服务分离 使用缓存改善网站性能 缓存类型 本地缓存 分布式缓存 缓存产品 redis 业界主流 memcached 解决问题 数据库访问 使用应用服务器集群改善网站的并发处理能力 问题: 负载均衡情况下session状态的保持? 解决方案: 基于DNS的负载均衡 反向代理 ngix JK2 数据库的读写分离 问题: 读库与写库的数据同步 解决方案: 不同的数据库都有自己的数据库的主从复制功能 使用反向代理与CDN加速网站响应 反向代理产品 ngix 使用分布式文件系统和分布式数据库系统 使用no-sql和搜索引擎 站内搜索 lucene nutch 分词器 no-sql库 mongodb hadoop 业务拆分 web service restful 分布式服务 大型网站架构演化的价值观 核心价值:随网站所需灵活应对 驱动力量:网站的业务发展 网站架构设计误区 一味追随大公司的解决方案 为技术而技术 企图用技术解决一切问题 大型网站架构模式 架构模式 分层 分割 分布式 分布式应用和服务 分布式静态资源 分布式数据和存储 分布式计算 集群 缓存 CDN 反向代理 本地缓存 分布式缓存 异步 冗佘 冷备份 主从分离,实时同步实现热备份 灾备数据中心 自动化 发布过程自动化 ant maven. 自动化代码管理 svn cvs github 自动化测试 loadrunner hudson. 自动化安全测试 自动化部署 自动化报警 自动化失效转移 自动化失效恢复 自动化降级 自动化分配资源 安全 密码和手机校验码 数据库中的密码加密后存 -> 不可ni -> md5 加密 子主题 1 验证码 防止机器登录 对于攻击网站XSS攻击,SQL注入,进行编码转换 对垃圾信息,敏感信息进行过滤 对交易转账等重要操作根据交易模式和交易信息进行风险控制 Sina微博的应用 大型网站架构要素 性能 可用性 伸缩性 扩展性 安全性 瞬时响应:网站的高性能架构 网站的性能测试 不同的视角 用户的视角 开发人员的视角 运维人员的视角 性能测试指标 响应时间 并发数 吞吐量 性能测试方法 性能测试 负载测试 压力测试 稳定性测试 web 前端性能优化 浏览器优化 减少http请求 使用浏览器缓存 启用压缩 css上,js下 减少cookie传输, 静态资源使用独立域名访问 CDN加速 反向代理 应用服务器性能优化 分布式缓存 缓存的原理 合理使用缓存 频繁修改的数据 没有热点的访问 数据不一致和脏读 缓存可用性 缓存预热 缓存穿透 缓存架构 jboss cache为代表的需要更新同步的分布式级缓存 以memcached为代表的不互相通信的分布式缓存 异步操作 使用集群 代码优化 多线程 资源复用 单例 对象池 数据结构 垃圾回收 存储性能优化 固态硬盘 RAID与HDFS 万无一失:网站的高可用性 高可性的度量与考核 度量 考核 高可用的网站架构 高可用的应用 高可用的服务 高可用的数据 CAP原理 数据备份 失效转移 高可用网站的软件质量保证 网站发布 自动化测试 预发布验证 代码控制 自动化发布 灰度发布 网站运行临控 临控数据采集 临控管理 永无止境:网站的可伸缩性 网站架构的伸缩性设计 不同功能进行物理分离实现伸缩 单一功能通过集群规模实现伸缩 应用服务器集群的伸缩性设计 http重定向负载均衡 DNS域名解析负载均衡 反向代理负载均衡 ip负载均衡 数据链路层负载均衡 负载均衡算法 分布式缓存集群的伸缩性设计 memcached分布式缓存集群的访问模型 memcached分布式缓存集群的伸缩性挑战 分布式缓存的一致性hash算法 数据存储服务器集群的伸缩性设计 关系数据库集群的伸缩性设计 nosql数据库的伸缩性设计 随需应变:网站的可扩展性 构建可扩展的网站架构 利用分布式消息队列降低系统耦合性 事件驱动架构 分布式消息队列 利用分布式服务打造可复用的业务平台 web service与企业级分布式服务 大型网站分布式服务的需求与特点 分布式服务框架设计 可扩展的数据结构 利用开放平台建设网站生态圈 固若金汤:网站安全架构 网站应用攻击与防御 XSS攻击 反射型 持久型 防御方法 消毒 httponly 注入攻击 SQL注入攻击 攻击前提 获取数据库结构的方法 防御方法 消毒 参数绑定 OS注入攻击 CSRF攻击 防御方法 表单token 验证码 referer check 1. 网络流量统计 2. 防盗链 error code html注释 文件上传 web应用防火墙 modsecurity NEC的 siteshell 网站安全漏洞扫描 信息加密技术及密钥安全管理 案例: CSDN 信息加密技术分类 单项散列加密 对称加密 非对称加密 密钥安全管理 将密钥和算法放在一个独立的服务器上,对外提供加密和解密服务 密钥放在独立服务器中,算法放在应用程序中。 信息过滤与反垃圾 文本匹配_敏感词过滤 正则表达式 trie树 双数组trie树 多级Hash表 信息降噪 分类算法_内容识别 黑名单 电子商务风险控制 风险 账户风险 买家风险 卖家风险 交易风险 风控 人工 自动 规则引擎 统计模型 案例 网购秒杀系统架构 网购秒杀系统架构
中诺企业网站系统(zncms.cn)是中诺科技开发的中国首套基于FLEX、微软.net平台、SQL Server数据库的高端、免费企业建站系统,系统前台生成html、完全符合SEO、便捷的企业网站管理、搜索引擎推广等功能。 中诺科技开发的核心产品中诺企业网站系统(zncms)是充分按照SEO最佳标准来开发,营销实用性非常强企业建站系统。灵活的静态化控制,自定义模板,自定义URL等多元化定制大大增加了企业网站的各种需求空间。强大的模板自定义可以轻松打造出个性的栏目封面,文章列表,图片列表,下载列表,分类列表等等。 中诺企业网站系统更注重用户使用的体验,后台采用Flex,Flex应用程序与传统的HTML应用程序的主要区别在于Flex应用程序处理最适合在客户端运行,如字段校验、数据格式、分类、过滤、工具提示、合成视 频、行为及效果等。Flex 可使开发人员更好地交付应用程序,这种应用程序使用户可以迅速反应、在不同状态与显示间流畅过渡,并提供毫无中断的连续的工作流。 主体功能列表如下: 系统采用C#语言.net3.5和SQL Server平台开发,系统运行速度快、稳定; 支持生成html,支持自定义标题、自定义关键词、自定义描述、静态页面符合SEO最佳标准的功能; 自定义导航、网站栏目可根据需要自定义、网站无线扩展; 支持URL自定义; 数据库自主备份、下载管理数据更安全可靠 系统自动生成日志; 支持大附件上传; 支持新闻无限极栏目; 支持文章存入草稿箱; 拥有留言、招聘等常用模块; 支持自定义标键值,扩展性更强; 安装说明: 1、使用ftp软件上传Upload文件内的所有内容到网站空间 2、将空间的.net版本切换到.net3.5 3、设置空间目录读写权限为:读取与执行、写入,并给予NETWORK SERVICE用户权限 4、修改默认首页设置为:index.htm  Default.aspx  (注意先后顺序) 5、浏览 http://域名/Default.aspx  按照步骤进行安装即可 注:1)网站空间需支持ASP.NET3.5及以上版本    2)数据库需要MSSQL2005及以上版本    3)上传时如果最好将Upload内的文件压缩后再上传,然后在线解压,以节省上传时间

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值