-gwa2 安全更新及域名绑定到模块

近期对 -gwa2 有几处更新,觉得有必要记下来供以后参考。

1. 安全组件升级
对 -gwa2 的全局输入变量做html标签的过滤,主要是为了预防 <script, <iframe, <embed, <img 等有害标签可能导致的跨站攻击xss. 此类操作之前都是在app的程序中按需做相应的处理,目前看来,这些需要还是有一定的共性,需要拿来单独处理。
改进的措施是将 < 符号统一替换为 &lt; .
加固改进后,应用开发层就不需要考虑再做类似的过滤操作,进入到业务操作层的代码已经是安全的了。唯有在需要html标签的地方,比如可视化编辑器等地方,需要存储为html标签,此时在输出层需要做一次转码。也即,在输出层做 &lt; 到 < 的转码.

2. 基于同一app内多个域名绑定到对应的子应用
-gwa2 吸收和使用统一入口这个多数优秀框架的属性或者称之为“路由”功能,为在同一App内绑定多个不同的域名到对应的各个不同的子应用、模块上提供了可能。遇有这样的需求时,可以为不同的模块使用不同的子域名来进行相应的访问。
通常访问某个app中的模块,其访问路径是:
//abc.com/?mod=product
如果使用单独的域名来对product进行访问,可以实现:
//product.abc.com/

这一地址也可以在“路由”操作时,根据被访问域名的不同,加载到 mod=product 实现与带参数访问一样的效果。
既然可以根据被访问域名的不同加载不同的mod,其域名形式就不仅仅局限于子域名,甚至可以完全不同的写法。如:
//efg.com/
同样可以指向 mod=product 模块。
这种写法或对基于SaaS的一些应用会有帮助。

3. 命名空间的使用
在使用 -gwa2 的新应用中,使用了两个外部组件,一个是有命名空间的构件,namespace xxxx, 另外一个是没有namespace ,结果就发生了外部空间中也命名了 Message.class 这个类,与自身业务对象发生冲突。表现为运行时报错说 message 这个对象不能重新declaration,需要解决。
解决的办法,在namespace出现之前,只有将两部message.class改名,可以分别该做message_xxx 和 message_yyy以避免命名冲突。
有了namespace之后,情况可以维持不变,继续分别叫这个名字,只是在应用时要加上各自的引用路径,从\写起,有些类似file system一样。
考察这里的namespace,与java和perl中的packgage有一些类似,都是在对象的再上一层形成“对象组” class group, 从而使得多个相同的类,可以分别存在在不同的命名空间或者组、包之内。

 

This entry was posted in -GWA2, 编程技术, 计算机技术 and tagged , , , . Bookmark the permalink.

发表评论

电子邮件地址不会被公开。 必填项已用*标注