--- Begin Message ---
Hello, 

I was trying to add some brute force protection to my live555-based RTSP 
server, but I realised that this cannot be easily done (unless I am overlooking 
something - please let me know if I do), so I would like to suggest a small 
change: 

In the RTSPServer class, there are 2 functions, specialClientAccessCheck and 
specialClientUserAccessCheck, that are called in 
RTSPServer::RTSPClientConnection::authenticationOK. The first one is called 
right at the beginning to enforce some global restrictions, e.g. based on IP 
address, and the second one is called when authentication was successful to 
apply some additional restrictions based on the user. I would like to propose a 
third function, say specialFailedLoginCheck (feel free to choose a different 
name if you don't like this one), that would be called if a login attempt 
failed. So in RTSPServer::RTSPClientConnection::authenticationOK it would look 
like this: 

if (success) { 
//nothing changes here 
} 
else if (!fOurRTSPServer.specialFailedLoginCheck(fClientInputSocket, 
fClientAddr, urlSuffix, username)) { 
setRTSPResponse("401 Unauthorized"); 
delete[] (char*)username; 
return False; 
} 

The idea then is that in specialFailedLoginCheck one could count how many false 
attempts there were for some IP address and act upon this, e.g. by locking this 
IP address out for some time with specialClientAccessCheck or whatever the user 
of the library thinks makes sense for their RTSP server. (the default 
implementation of specialFailedLoginCheck just returns True) 

Best regards, 
Jay 


--- End Message ---
_______________________________________________
live-devel mailing list
[email protected]
http://lists.live555.com/mailman/listinfo/live-devel

Reply via email to