1. Because of same origin policy in browser, javascript from a domain can not access data from same domain.
2. Thus there is possibility that user widget running on your server can attack your server via its script, because it’s running in same origin as your widget container.
3. So we could provide a mechanism that can restrict the request from such malicious script/widget, we can still rely on same origin policy, that is to put the widget inside an iframe but not inlining container.
4. But we still need to keep the communication capability of widgets, of course the communication between iframe widget and inlining widget.
5. So OpenAjax Hub provide such a mechanism and reference implementation that we could make use of, to make it possible to communicate between different types of widgets.