如何开发安全的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文件里面include另外一个PHP文件两次吗
May 22 面试题
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类
Feb 06 面试题
Java提供了哪些企业应用编程接口
Feb 13 面试题
Java基础知识面试要点
Jul 29 面试题
C语言编程练习
Apr 02 面试题
Oracle中delete,truncate和drop的区别
May 05 面试题
SQL注入攻击的种类有哪些
Dec 30 面试题
Linux面试题LINUX系统类
Nov 25 面试题
软件测试面试题
Oct 21 面试题
软件测试常见笔试题
Feb 04 面试题
EJB实例的生命周期
Oct 28 面试题
AJAX应用和传统Web应用有什么不同
Aug 24 面试题
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树形菜单代码
2014/11/19 PHP
Yii2中cookie用法示例分析
2016/07/18 PHP
window.open的功能全解析
2006/10/10 Javascript
JS之Date对象和获取系统当前时间详解
2014/01/13 Javascript
JS判断移动端访问设备并加载对应CSS样式
2014/06/13 Javascript
JS数组的常见用法实例
2015/02/10 Javascript
jQuery层动画定位滑动效果的方法
2015/04/30 Javascript
jQuery实现扑克正反面翻牌效果
2017/03/10 Javascript
微信小程序 登录的简单实现
2017/04/19 Javascript
React中jquery引用的实现方法
2017/09/12 jQuery
JS实现websocket长轮询实时消息提示的效果
2017/10/10 Javascript
基于JavaScript中字符串的match与replace方法(详解)
2017/12/04 Javascript
layui从数据库中获取复选框的值并默认选中方法
2018/08/15 Javascript
修改vue+webpack run build的路径方法
2018/09/01 Javascript
Python生成器(Generator)详解
2015/04/13 Python
qpython3 读取安卓lastpass Cookies
2016/06/19 Python
在Django同1个页面中的多表单处理详解
2017/01/25 Python
Python创建xml文件示例
2017/03/22 Python
python的常用模块之collections模块详解
2018/12/06 Python
Python入门Anaconda和Pycharm的安装和配置详解
2019/07/16 Python
Python3爬虫关于识别检验滑动验证码的实例
2020/07/30 Python
使用CSS3中的calc()属性来以算式表达尺寸数值
2016/06/06 HTML / CSS
宝拉珍选澳大利亚官方购物网站:Paula’s Choice澳大利亚
2016/09/13 全球购物
Raffaello Network西班牙:意大利拉斐尔时尚购物网
2019/03/12 全球购物
阿拉伯时尚购物网站:Nisnass
2021/02/07 全球购物
2014年政工师工作总结
2014/12/18 职场文书
初中作文评语
2014/12/25 职场文书
逃课检讨书
2015/01/26 职场文书
红色影片观后感
2015/06/18 职场文书
母亲去世追悼词
2015/06/23 职场文书
员工考勤管理制度
2015/08/06 职场文书
心理健康教育主题班会
2015/08/13 职场文书
分享15个Webpack实用的插件!!!
2021/03/31 Javascript
Python破解极验滑动验证码详细步骤
2021/05/21 Python
TensorFlow的自动求导原理分析
2021/05/26 Python
Python中seaborn库之countplot的数据可视化使用
2021/06/11 Python