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

面试题 相关文章推荐
一套VC试题
Jan 23 面试题
函数指针的定义是什么
Aug 14 面试题
下述程序的作用是计算机数组中的最大元素值及其下标
Nov 26 面试题
SQL Server面试题
Apr 04 面试题
Oracle性能调优原则
May 03 面试题
介绍一下ICMP(Internet Control Message Protocol)Internet控制信息协议
Nov 26 面试题
网络工程师面试(三木通信技术有限公司)
Jun 05 面试题
C#如何允许一个类被继承但是避免这个类的方法被重载?
Feb 24 面试题
linux面试题参考答案(5)
Sep 01 面试题
如何利用find命令查找文件
Nov 18 面试题
J2EE面试题大全
Aug 06 面试题
J2EE的优越性主要表现在哪些方面
Mar 28 面试题
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会员权限控制实现原理分析
2011/05/29 PHP
php模板原理讲解
2013/11/13 PHP
php实现建立多层级目录的方法
2014/07/19 PHP
php json转换成数组形式代码分享
2014/11/10 PHP
Symfony2安装的方法(2种方法)
2016/02/04 PHP
简单三步,搞掂内存泄漏
2007/03/10 Javascript
JQuery中html()方法使用不当带来的陷阱
2011/04/07 Javascript
使用js实现关闭js弹出层的窗口
2014/02/10 Javascript
jQuery实现类似老虎机滚动抽奖效果
2015/08/06 Javascript
浅谈JS中逗号运算符的用法
2016/06/12 Javascript
Jquery针对tr td的一些实用操作方法(必看篇)
2016/10/05 Javascript
Vue.directive自定义指令的使用详解
2017/03/10 Javascript
浅谈vuejs实现数据驱动视图原理
2018/02/23 Javascript
详解webpack import()动态加载模块踩坑
2018/07/17 Javascript
jQuery实现模拟搜索引擎的智能提示功能简单示例
2019/01/27 jQuery
详解JS实现系统登录页的登录和验证
2019/04/29 Javascript
vue+导航锚点联动-滚动监听和点击平滑滚动跳转实例
2019/11/13 Javascript
uni-app实现获取验证码倒计时功能
2020/11/01 Javascript
python中查找excel某一列的重复数据 剔除之后打印
2013/02/10 Python
Python实现string字符串连接的方法总结【8种方式】
2018/07/06 Python
Python定时发送消息的脚本:每天跟你女朋友说晚安
2018/10/21 Python
Python数据类型之列表和元组的方法实例详解
2019/07/08 Python
详解将Python程序(.py)转换为Windows可执行文件(.exe)
2019/07/19 Python
python实现windows倒计时锁屏功能
2019/07/30 Python
Jupyter notebook 远程配置及SSL加密教程
2020/04/14 Python
python图片合成的示例
2020/11/09 Python
Python实现PS滤镜中的USM锐化效果
2020/12/04 Python
波兰珠宝品牌:YES
2019/08/09 全球购物
咖啡店的创业计划书,让你hold不住
2014/01/03 职场文书
《富饶的西沙群岛》教学反思
2014/04/09 职场文书
助人为乐模范事迹材料
2014/06/02 职场文书
校庆活动策划方案
2014/06/05 职场文书
幼儿园标语大全
2014/06/19 职场文书
公司搬迁通知
2015/04/20 职场文书
如何撰写出一份完美的商业计划书?
2019/07/12 职场文书
MySQL 覆盖索引的优点
2021/05/19 MySQL