Avoiding GFX Intervall - Dynamic Banner

winzi

Member
Sep 15, 2015
53
5
43
I wonder if it is possible to avoid / block the GFX Intervall and refresh the Banner over Cronjobs or something like that. Or is there a way to minimize the GFX Intervall under 60 secs?
 

Norvik

Retired Staff
Contributor
Jul 18, 2015
635
588
157
I'm currently not aware of a method that's bypassing the 60 seconds. I did not test it but it should be possible to change the image automatically using a cronjob. You just should put a random image name or any random string in the URL so the image will be detected as a new one since it's not in the clients cache. This will kinda flood the clients storage since it wouldn't overwrite any of the previous pictures but do what you want.
 

Asphyxia

Owner
Administrator
Apr 25, 2015
1,844
2
2,197
327
I'm currently not aware of a method that's bypassing the 60 seconds. I did not test it but it should be possible to change the image automatically using a cronjob. You just should put a random image name or any random string in the URL so the image will be detected as a new one since it's not in the clients cache. This will kinda flood the clients storage since it wouldn't overwrite any of the previous pictures but do what you want.
Good point, this is a potential attack vector. Just keep switching images to the largest size the TS3 client supports. Clients keep caching banner gfx and flooding data storage. ;)
 

Norvik

Retired Staff
Contributor
Jul 18, 2015
635
588
157
Good point, this is a potential attack vector. Just keep switching images to the largest size the TS3 client supports. Clients keep caching banner gfx and flooding data storage. ;)
Let's say you change the image every second but it takes more than a second to load the image. Will the client continue downloading the previous image? If so you could go completely crazy by changing the image a shitload of times in a very short amount of time. Gonna try to find out more about this when I'm at home :)
 

dedmen

TeamSpeak Developer
Contributor
Mar 28, 2016
530
583
157
The Interval is set serverside right? If you can't set it lower than 60 seconds.. just set it lower in the SQL database and restart the server. Don't think teamspeak takes precautions so that doesn't happen.
 

ehthe

Retired Staff
Contributor
Apr 26, 2015
1,028
896
216
The Interval is set serverside right? If you can't set it lower than 60 seconds.. just set it lower in the SQL database and restart the server. Don't think teamspeak takes precautions so that doesn't happen.
I had tried that a while ago. It didn't work. I didn't manage to find whether it was the server or the client enforcing the 60 sec timing.
 

NoXx

Member
Apr 24, 2016
33
29
50
The interval is set clientside, it starts the counter with your connection (with a slight delay since it checks the existing cache for integrity)
 

winzi

Member
Sep 15, 2015
53
5
43
@NoTeefy so you mean we must modify the client to get under 60 secs? This confused me a littlebit. Yeah thats true that the counter starts with your connection but the config for the Intervall is serverside. I am right?
 

NoXx

Member
Apr 24, 2016
33
29
50
@NoTeefy so you mean we must modify the client to get under 60 secs? This confused me a littlebit. Yeah thats true that the counter starts with your connection but the config for the Intervall is serverside. I am right?
If it's still like when I tested it (about 2,5 months ago) the client connects -> checks server configs -> sets interval to 60 or higher. If you change it over the server database to an amount under 60 it ignores it and takes 60 instead. You can't work around that without modifying every client that should reload the gfx under 60 seconds.
 

ehthe

Retired Staff
Contributor
Apr 26, 2015
1,028
896
216
Are you sure it's the client enforcing the limitation and not the server just checking the value before sending it ?
 

NoXx

Member
Apr 24, 2016
33
29
50
Are you sure it's the client enforcing the limitation and not the server just checking the value before sending it ?
I'm not sure about that one. I just analyzed that a value under 60 gets replaced by 60.
If the server handles that check there might be a way of manipulating it.

Addition: By that time I couldn't find any check on the serverside, that's why I got to the conclusion that the client handles that one. It could be that I overflew it, didn't invest much hours into this problem^^
 
Last edited:
Top