最近用Gateway写了一个项目,功能已经开发完成了后期打算上线,但是我这项目容易被攻击,想请教一下Gateway作为推送端有没有好的防攻击措施或者建议啊,相信这个问题也会有很多小伙伴会遇见吧@walkor
这个看攻击类型吧, 比如ddos一般只能购买运行商ddos防护了。
代码层可以做个消息频率限制,比如:
/** * 限制消息发送频率. * * @param $clientId * * @return boolean. */ private static function _limitClientSendMessageRate($clientId) { $curMsecTime = Utility::getMsectime(); $_SESSION = empty($_SESSION) ? 0 : $_SESSION; $_SESSION = empty($_SESSION) ? $curMsecTime : $_SESSION; if ($curMsecTime - $_SESSION >= 1000) { $_SESSION = 0; $_SESSION = $curMsecTime; } else { $_SESSION ++; if ($_SESSION > 3) { //Gateway::sendToClient($clientId, 'The server is busy. Please try again later!'); Gateway::closeClient($clientId,'The server is busy. Please try again later!'); return false; } } return true; }
这个看攻击类型吧, 比如ddos一般只能购买运行商ddos防护了。
代码层可以做个消息频率限制,比如: