Red5安全教程

时间:2009-11-09 18:11:18

标签: flash red5 flash-media-server

我正在寻找有关保护Red5免受入侵的一步一步的教程。这似乎是一个在谷歌搜索中出现的问题,但从来没有真正以对普通Flash开发者有意义的方式回答。

2 个答案:

答案 0 :(得分:5)

您可以使用安全框架为发布,播放或SharedObjects保护red5。在这种情况下,客户端无关紧要,但如果您想要保护oflaDemo,则需要在后端添加安全挂钩。这是您需要的教程: http://wiki.red5.org/wiki/Documentation/UsersReferenceManual/Red5CoreTechnologies/04-Security
这里有一个更深入的安全教程: http://wiki.red5.org/wiki/Documentation/Tutorials/Red5AndAcegiSecurity
阻止播放的简单示例如下:

public class PlaybackSecurity implements IStreamPlaybackSecurity {
    @Override
    public boolean isPlaybackAllowed(IScope scope, String name, int start, int length, boolean flushPlaylist) {
        //start out denied
        boolean allowed = false;
        //get the current connection
        IConnection conn = Red5.getConnectionLocal();
        //token to use for auth
        Long token = -1L;
        if (conn.hasAttribute("token")) {
            //get a 'token' we stored on their connection from elsewhere
            token = conn.getLongAttribute("token");
            //validate the token in some way
            if (token > 0L) {
                allowed = true;
            }
        }
        //return allowed or denied state
        return allowed;
    }
}
应用程序启动时应添加安全类,因此我建议您将它放在应用程序适配器“appStart”方法中,如下所示:
    @Override
    public boolean appStart(final IScope app) {
        //register our stream security classes
    registerStreamPlaybackSecurity(new PlaybackSecurity(applicationContext));
        //pass control back to super
        return super.appStart(app);
    }

使用Red5教程和源代码进行CRAM身份验证:http://blog.infrared5.com/2012/05/red5-authentication/

答案 1 :(得分:0)

您无法从客户端保护后端,OflaDemo是一个演示应用程序,而不是生产应用程序。默认情况下,Red5不允许全局连接,因此如果您只运行自己的应用程序,则可以实现任何类型的安全性。

不,实际上不需要(并且没有用)尝试仅在防火墙级别上管理安全性。 API允许限制用户访问red5的各种用法。