如何开发安全的AJAX应用


Posted in 面试题 onMarch 26, 2014
AJAX技术已经是现在最流行的Web应用开发技术了,但是与此同时,Web应用也成了这个IT架构中安全最薄弱,最容易受到攻击的部分,AJAX应用相比较与传统的Web应用,大大增加了客户端与服务器之间的交互,同时也使得一些后台的业务逻辑接口暴露给了客户端,如果服务器端没有足够的保护或者没有对客户端请求进行合法性校验,攻击者就会趁虚而入,进入系统内部进行破坏。开发人员如何才能在开发工程中保证AJAX应用的安全呢? 一下是我搜集资料总结出来的一些checklist和best practices,希望对大家有所帮助。
1.输入校验,这一部分已经在我的上一篇blog 如何进行Web应用的安全测试和输入校验 中进行了说明,进行输入校验有两种方式,一种是Blacklisting: 就是列出所有非法的输入进行屏蔽;另外一种是Whitelisting: 就是列出合法的输入格式,只要不属于这种格式都划为非法格式进行屏蔽。安全方面来说,Whitelisting比Blacklisting有更高的安全性。
2.尽量避免动态的生成和执行code, 在javascript中尽量避免使用eval函数。
3.在使用json对象之前对它进行校验,因为json对象也是javascript的一部分,所以json对象里面也有可能包含有有害的代码,所以在使用之前要对json进行校验,以保证json对象是安全的,校验的方法可以使用正则表达式进行也可以使用一个json parser进行转换,然后再使用。
4.在引用不可信的内容的时候尽量使用iframe的方式。
5.不要一刀切的使用AJAX, AJAX的作用是提高应用的交互性,所以之需要在交互性比较强的地方才使用ajax, 其他如之需要展示信息的地方使用传统的方式安全性更高。
6.尽量使交互的网络传输量最小,ajax频繁的交互不但对应用性能有影响,对安全也是很大的隐患,所以要尽可能在最需要的地方使用ajax, 不要用ajax执行大的局部刷新操作
7.最后可以使用一些ajax的安全检查工具进行检查。

Tags in this post...

面试题 相关文章推荐
HashMap和Hashtable的区别
May 18 面试题
xml有哪些解析技术?区别是什么
Apr 26 面试题
JAVA代码查错题
Oct 10 面试题
介绍一下SQL注入攻击的种类和防范手段
Feb 18 面试题
简述网络文件系统NFS,并说明其作用
Oct 19 面试题
如何查找网页漏洞
Jun 22 面试题
初级软件工程师面试题 Junior Software Engineer Interview
Feb 15 面试题
接口的多继承会带来哪些问题
Aug 17 面试题
软件测试题目
Feb 27 面试题
软件设计的目标是什么
Dec 04 面试题
如何用Java实现列出某个目录下的所有子目录
Jul 20 面试题
Java基础面试题
Nov 02 面试题
Ajax的工作原理
Dec 04 #面试题
什么是GWT的Module
Jan 20 #面试题
Prototype如何实现页面局部定时刷新
Aug 06 #面试题
如何开发一个JQuery插件
Jul 28 #面试题
什么是GWT的Entry Point
Aug 16 #面试题
AJAX的优缺点都有什么
Aug 18 #面试题
DOM和JQuery对象有什么区别
Nov 11 #面试题
You might like
用PHP将数据导入到Foxmail的实现代码
2010/09/05 PHP
php中计算程序运行时间的类代码
2012/11/03 PHP
php与java通过socket通信的实现代码
2013/10/21 PHP
php预定义变量使用帮助(带实例)
2013/10/30 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
2018/06/16 PHP
PHP 爬取网页的主要方法
2018/07/13 PHP
win7 wamp 64位 php环境开启curl服务遇到的问题及解决方法
2018/09/16 PHP
node.js实现多图片上传实例
2014/06/03 Javascript
javascript实现window.print()去除页眉页脚
2014/12/30 Javascript
jQuery 处理页面的事件详解
2015/01/20 Javascript
NodeJS学习笔记之Connect中间件应用实例
2015/01/27 NodeJs
原生JS实现LOADING效果
2015/03/16 Javascript
jQuery插件开发精品教程让你的jQuery提升一个台阶
2016/01/27 Javascript
jquery.form.js框架实现文件上传功能案例解析(springmvc)
2016/05/26 Javascript
微信小程序 参数传递详解
2016/10/24 Javascript
通过BootStrap-select插件 js jQuery控制select属性变化
2017/01/03 Javascript
Vue 组件(component)教程之实现精美的日历方法示例
2018/01/08 Javascript
vue-cli3+typescript初体验小结
2019/02/28 Javascript
小程序获取当前位置加搜索附近热门小区及商区的方法
2019/04/08 Javascript
layui的表单提交以及验证和修改弹框的实例
2019/09/09 Javascript
[46:42]DOTA2-DPC中国联赛正赛 Aster vs Magma BO3 第二场 3月5日
2021/03/11 DOTA
python实现通过shelve修改对象实例
2014/09/26 Python
python和opencv实现抠图
2018/07/18 Python
python 扩展print打印文件路径和当前时间信息的实例代码
2019/10/11 Python
基于YUV 数据格式详解及python实现方式
2019/12/09 Python
GAP阿联酋官网:GAP UAE
2017/11/30 全球购物
毕业生个人的求职信范文
2013/12/03 职场文书
大学生职业规划范文:象牙塔生活的四年计划
2014/01/14 职场文书
党校学习自我鉴定
2014/02/24 职场文书
小学清明节活动方案
2014/03/08 职场文书
校园安全演讲稿
2014/05/09 职场文书
条幅标语大全
2014/06/20 职场文书
2019年年中工作总结讲话稿模板
2019/03/25 职场文书
七年级之家长会发言稿范文
2019/09/04 职场文书
elementui的el-popover修改样式不生效的解决
2021/06/30 Javascript
Java面试题冲刺第十八天--Spring框架3
2021/08/07 面试题