backdoor: web -> hub, fix bug about tail '\n'