如何开发安全的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...

面试题 相关文章推荐
比较基础的php面试题及答案-填空题
Apr 26 面试题
威盛公司软件C++工程师笔试题面试题
Jul 16 面试题
什么是"引用"?申明和使用"引用"要注意哪些问题?
Mar 03 面试题
试述DBMS的主要功能
Nov 13 面试题
SQL里面如何插入自动增长序列号字段
Mar 29 面试题
Ado与Ado.net的相同与不同
Dec 08 面试题
.NET程序员的几道面试题
Jun 01 面试题
软件工程师面试题
Jun 25 面试题
网友共享的几个面试题关于Java和Unix等方面的
Sep 08 面试题
百度JavaScript笔试题
Jan 15 面试题
介绍一下如何优化MySql
Dec 20 面试题
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批量采集下载美女图片的实现代码
2013/06/03 PHP
php处理restful请求的路由类分享
2014/02/27 PHP
php的sso单点登录实现方法
2015/01/08 PHP
php自定义函数实现统计中文字符串长度的方法小结
2017/04/15 PHP
javascript引用对象的方法代码
2007/08/13 Javascript
支持ie与FireFox的剪切板操作代码
2009/09/28 Javascript
Extjs中DisplayField的日期或者数字格式化扩展
2010/09/03 Javascript
Bootstrap3制作自己的导航栏
2016/05/12 Javascript
详解vue-cli开发环境跨域问题解决方案
2017/06/06 Javascript
js+html5实现复制文字按钮
2017/07/15 Javascript
微信小程序 页面滑动事件的实例详解
2017/10/12 Javascript
javaScript实现鼠标在文字上悬浮时弹出悬浮层效果
2020/04/12 Javascript
vue移动端实现红包雨效果
2020/06/23 Javascript
JS实现数组的增删改查操作示例
2018/08/29 Javascript
JS实现获取自定义属性data值的方法示例
2018/12/19 Javascript
python中实现php的var_dump函数功能
2015/01/21 Python
Python基础教程之浅拷贝和深拷贝实例详解
2017/07/15 Python
Python实现的根据文件名查找数据文件功能示例
2018/05/02 Python
python实现数据导出到excel的示例--普通格式
2018/05/03 Python
Python中的Numpy矩阵操作
2018/08/12 Python
python多线程http压力测试脚本
2019/06/25 Python
django中使用Celery 布式任务队列过程详解
2019/07/29 Python
使用phonegap克隆和删除联系人的实现方法
2017/03/31 HTML / CSS
美国高端医师级美容产品电商:BeautifiedYou.com
2017/04/17 全球购物
英国灯具和灯泡网上商店:Lights.co.uk
2018/02/02 全球购物
英国最大的笔记本电脑直销专家:Laptops Direct
2019/07/20 全球购物
Flesh Beauty官网:露华浓集团旗下彩妆品牌
2021/02/15 全球购物
PHP解析URL是哪个函数?怎么用?
2013/05/09 面试题
工程造价专业大专生求职信
2013/10/06 职场文书
软件工程师岗位职责
2013/11/16 职场文书
会走路的树教学反思
2014/02/20 职场文书
建筑结构施工专业推荐信
2014/02/21 职场文书
2014年两会学习心得范例
2014/03/17 职场文书
创建绿色社区汇报材料
2014/08/22 职场文书
2014年生产管理工作总结
2014/12/23 职场文书
员工担保书范本
2015/09/22 职场文书