Bladeren bron

Checking mask bit.

Signed-off-by: tianhe1986 <w1s2j3229@163.com>
tianhe1986 7 jaren geleden
bovenliggende
commit
add3cce9f7
2 gewijzigde bestanden met toevoegingen van 14 en 0 verwijderingen
  1. 7 0
      Protocols/Websocket.php
  2. 7 0
      Protocols/Ws.php

+ 7 - 0
Protocols/Websocket.php

@@ -70,6 +70,13 @@ class Websocket implements \Workerman\Protocols\ProtocolInterface
             $data_len     = $secondbyte & 127;
             $is_fin_frame = $firstbyte >> 7;
             $masked       = $secondbyte >> 7;
+
+            if (!$masked) {
+                echo "frame not masked\n";
+                $connection->close();
+                return 0;
+            }
+
             $opcode       = $firstbyte & 0xf;
             switch ($opcode) {
                 case 0x0:

+ 7 - 0
Protocols/Ws.php

@@ -71,6 +71,13 @@ class Ws
             $data_len     = $secondbyte & 127;
             $is_fin_frame = $firstbyte >> 7;
             $masked       = $secondbyte >> 7;
+
+            if ($masked) {
+                echo "frame masked\n";
+                $connection->close();
+                return 0;
+            }
+
             $opcode       = $firstbyte & 0xf;
 
             switch ($opcode) {