Close connection if invalid topic
This commit is contained in:
parent
810429a6fe
commit
309564cbf1
@ -94,7 +94,7 @@ class ServerProtocol implements MessageComponentInterface, WsServerInterface {
|
||||
}
|
||||
|
||||
if (isset($json[1]) && !is_string($json[1])) {
|
||||
$json[1] = json_encode($json[1]);
|
||||
throw new Exception('Invalid Topic, must be a string');
|
||||
}
|
||||
|
||||
switch ($json[0]) {
|
||||
|
@ -267,21 +267,29 @@ class ServerProtocolTest extends \PHPUnit_Framework_TestCase {
|
||||
}
|
||||
|
||||
public function testBadClientInputFromNonStringTopic() {
|
||||
$this->setExpectedException('\Ratchet\Wamp\Exception');
|
||||
|
||||
$conn = new WampConnection($this->newConn());
|
||||
$this->_comp->onOpen($conn);
|
||||
|
||||
$this->_comp->onMessage($conn, json_encode([5, ['hells', 'nope']]));
|
||||
|
||||
$this->assertEquals('["hells","nope"]', $this->_app->last['onSubscribe'][1]);
|
||||
}
|
||||
|
||||
public function testBadPrefixWithNonStringTopic() {
|
||||
$this->setExpectedException('\Ratchet\Wamp\Exception');
|
||||
|
||||
$conn = new WampConnection($this->newConn());
|
||||
$this->_comp->onOpen($conn);
|
||||
|
||||
$this->_comp->onMessage($conn, json_encode([1, ['hells', 'nope'], ['bad', 'input']]));
|
||||
$this->_comp->onMessage($conn, json_encode([7, ['bad', 'input'], 'Hider']));
|
||||
}
|
||||
|
||||
$this->assertEquals('["bad","input"]', $this->_app->last['onPublish'][1]);
|
||||
public function testBadPublishWithNonStringTopic() {
|
||||
$this->setExpectedException('\Ratchet\Wamp\Exception');
|
||||
|
||||
$conn = new WampConnection($this->newConn());
|
||||
$this->_comp->onOpen($conn);
|
||||
|
||||
$this->_comp->onMessage($conn, json_encode([7, ['bad', 'input'], 'Hider']));
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user