我正在寻找有关保护Red5免受入侵的一步一步的教程。这似乎是一个在谷歌搜索中出现的问题,但从来没有真正以对普通Flash开发者有意义的方式回答。
答案 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);
}
答案 1 :(得分:0)
您无法从客户端保护后端,OflaDemo是一个演示应用程序,而不是生产应用程序。默认情况下,Red5不允许全局连接,因此如果您只运行自己的应用程序,则可以实现任何类型的安全性。
不,实际上不需要(并且没有用)尝试仅在防火墙级别上管理安全性。 API允许限制用户访问red5的各种用法。