阅读更多

11顶
0踩

Web前端

原创新闻 让JavaScript更安全可靠 - Caja

2007-11-14 00:03 by 见习编辑 robbin 评论(2) 有8102人浏览
JavaScript在web2.0时代已经成为越来越重要的一种脚本语言,但是JavaScript在浏览器里面的交互能力也是互联网web网页安全的一大隐患。Google公司的Ben Laurie发起了一个Caja项目,旨在制订一个JavaScript语言的子集和最佳编程指导方针,约束JavaScript程序员编写的代码,符合一个更加安全,更加合理的JS代码。

该项目的主页是:

http://code.google.com/p/google-caja/

即便对Caja未必非常感兴趣,我也建议你看看他的wiki,对于如何编写良好风格的JS很有帮助:

http://code.google.com/p/google-caja/w/list

11
0
评论 共 2 条 请登录后发表评论
2 楼 wanghuan8086 2007-11-15 19:28
function Brand(name) {
    caja.requireType(name,'string');
    var flag = false;
    var squirrel = null;

    var sealer = caja.freeze({
        toString: function() { return '<'+name+' sealer>'; },

        /** Returns a sealed box containing the payload. */
        seal: function(payload) {

            /** 
             * Encapsulates the payload, but makes it available to its
             * unsealer when provoked.
             */
            return caja.freeze({
                toString: function() { return '<'+name+' box>'; },
                provoke: function() {
                    squirrel = payload;
                    flag = true;
                }
            });
        }
    });

    var unsealer = caja.freeze({
        toString: function() { return '<'+name+' unsealer>'; },

        /**
         * Obtains the payload sealed within a box sealer only by our sealer.
         */
        unseal: function(box) {
            flag = false; 
            squirrel = null;
            box.provoke();
            caja.require(flag,'not my box: '+box);
            var result = squirrel;
            // next two lines are probably unneeded, but just in case
            flag = false; 
            squirrel = null;
            return result;
        }
    });
    return caja.freeze({
        toString: function() { return '<'+name+' brand>'; },
        sealer: sealer,
        unsealer: unsealer
    });
}
1 楼 hax 2007-11-14 03:04
great project!

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • extjs调用dwr返回的json数据

    1.近期公司使用extjs做ui界面,并用dwr远程访问javabean取得json数据。网上搜了一天,不能用.用一天的时间终于自学成才,回头看一下原来就这么简单,现将心得与大家分享,菜鸟级别,有问题请指正!   2.首先是...

  • extjs ajax方式前后台数据传送(json格式

    extjs用ajax传送数据的方法有post(用普通的表单或用json格式),get(用params). 在回传的时候用json(推荐方法) ,需要注意的是服务器必须要返回json格式,并且必须要设置success的值,当然你不这样也能,但是这种方式...

  • php接口返回一个数组怎末写_php api返回json数组

    [PHP] 为JSON数据的API返回空数组或者空对象PHP 中,...在使用 JSON 作为 API 数据 Content-Type 的时候,会有这样一个问题:如何返回一个空对象和一个空数组?使用:json_encode([]) ...文章progpark2016-04-21119...

  • 关于返回json数据格式的问题

     今天想做个ExtJS远程数据加载的树形结构,因为Ext.tree.TreeLoader只支持json对象,不支持数组和xml,所以说通过struts2 json插件直接返回json对象,但是配置后返回的数据是 {"nodeList":[{"id":"root1...

  • extjs ajax方式前后台数据传送(json格式)

    extjs用ajax传送数据的方法有post(用普通的表单或用json格式),get(用params). 在回传的时候用json(推荐方法) ,需要注意的是服务器必须要返回json格式,并且必须要设置success的值,当然你不这样也能,但是这种...

  • extjs java mysql_Extjs分页使用Java实现数据库数据查询

    //统计结果分页每一页显示数据条数//在这里使用Store来创建一个类似于数据表的结构,因为需要远程获取数据,所以应该使用//HttpProxy类,我是从后台读取的是json数据格式的数据,所以使用JsonReader来解析;...

  • 什么是正确的 JSON 内容类型?

    想要改进这篇文章?...是否返回列表?单一元素?又叫了吗?后续调用何时停止?1. 这段代码由 Jochen Schulz (jrschulz) 编写,他为度量空间制作了一个很棒的 Python 库。这是完整源代码的链接:Module mJSON 内

  • extjs java mysql_Extjs分页使用java实现数据库数据查询

    //统计结果分页每一页显示数据条数//在这里使用Store来创建一个类似于数据表的结构,因为需要远程获取数据,所以应该使用//HttpProxy类,我是从后台读取的是json数据格式的数据,所以使用JsonReader来解析;...

  • ExtJS之 Proxy数据代理

    ExtJS之 Proxy数据代理 代理种类截图: ExtJS提供的数据代理主要分为两大类: 1.客户端代理 (Ext.data.proxy.Client) 2.服务器代理(Ext.data.proxy.Server) 这两个类 都继承自 Ext.data.proxy.Proxy , ...

  • ExtJs框架系列之数据存储Stroe

    Store可以理解为数据存储器,可以理解为客户端的小型数据表,提供缓存...一个Store包含多个Record,同时Store又包含了数据来源,数据解析器等相关信息,Store通过调用具体的数据解析器 (DataReader)来解析指定类型或格

  • 谈一谈我对EXTJS的数据存储机制一点看法

    其实不然,因为我目前我对EXTJS的研究来看,这个典型富客户端的应用框架,目前能够支持的也就是两种中间数据交换结构,即XML与JSON。再从我们现在主流的企业级应用开发语系来看,目前.NET官方是偏重于支持XML的形式...

  • 对Json 和jsonp跨域请求数据 的理解

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。对于JSON大家应该是很了解了吧,不是很清楚的朋友可以去json.org上了解下,简单易懂。JSONP是JSON with Padding的略称。它是一个非官方的协议,...

  • 利用xmlDoc读取xml文件构建ExtJS Tree

    ExtJS的Tree控件利用TreeNode构建内置的数据,在client/Server的结构中,利用TreeLoader从server端获得Tree中的...在实际的生产中,有时利用xml作为数据源,在ExtJS自带的例子中,有XMLTreeLoader的例子,扩展TreeLo...

  • extjs中元数据_extJS 中 ext.data 介绍

    ext.data 最主要的功能是获取和组织数据结构,并和特定控件联系起来,于是,Ext.data成了数据的来源,负责显示数据。Ext.data在命名空间中定义了...Ext.data默认支持Array、JSON、XML等数据格式,可以通过Memory、HT...

  • store下拉框同步_ExtJS下拉列表使用方法(异步传输数据)

    最近使用ExtJS下拉列表框(ComboBox)希望完成一个动态下拉列表的功能,即列表中的数据都通过异步方式查询数据库而来,同时在用户选择了列表中的某个值后,可以从后台正确的获取用户选择项所对应的值。这就包含了两个...

  • Extjs学习 数据处理Proxy 、Reader 、Store

    ExtJs中的数据处理主要通过三个类来实现 * 数据代理类:Ext.data.DataProxy ----作用:获取数据,一般使用其子类Ext.data.MemoryProxy,Ext.data.HttpProxy,Ext.data.ScriptTagProxy * 数据读取器类:Ext.data....

  • extjs

    自动生成行号,支持checkbox全选,动态选择显示哪些列,支持本地以及远程分页,可以对单元格按照自己的想法进行渲染,这些也算可以想到的功能。 软件名称Extjs软件版本1.0正式版 更新时间2006年初软件语言中文...

  • JSON JSONP

    这两个问题目前都有不同的解决方案,比如数据可以用自定义字符串或者用XML来描述,跨域可以通过服务器端代理来解决。 但到目前为止最被推崇或者说首选的方案还是用JSON来传数据,靠JSONP来跨域。而这就是本文将要...

  • Javascript - ExtJs - 数据

    数据(ExtJs Data) Ext.data命名空间 ...该命名空间下的类支持数组、Json和xml数据。 Ext.data.Connection 此类封装了Ajax,提供比传统Javascript异步传输数据更为简洁的方法,兼容了所有浏览器。它负...

  • PHP语言基础知识详解及常见功能应用.docx

    本文详细介绍了PHP的基本语法、变量类型、运算符号以及文件上传和发邮件功能的实现方法,适合初学者了解和掌握PHP的基础知识。

Global site tag (gtag.js) - Google Analytics