socks5协议解析部分是否有改进空间?
RainUUU opened this issue · 6 comments
RainUUU commented
socks5协议解析部分是否有改进空间?
RainUUU commented
该项目解析socks5部分协议是否有改进空间?
socks5服务端使用TCP协议监听,在onMessage中监听回调消息,在碰到数据未接收完整的情况下都选择close connection。
例如:parse_socket5_header()
if(strlen($buffer) < 10)
{
echo bin2hex($buffer)."\n";
echo "buffer too short\n";
return false;
}
是我考虑多了还是确实有改进空间?
walkor commented
只有在socks5握手的时候才判断buffer长度是否足够,握手完毕后就直接传输了,不会再判断长度。
握手的时候buffer肯定是足够的,不足的话说明是错误的数据,关闭是没问题的
RainUUU commented
再请教一下,“只有在socks5握手的时候才判断buffer长度是否足够” ,这个依据是因为握手时传输的buffer不大的原因吗? 握手阶段的消息也是通过TCP传输的吧?
RainUUU commented
可能是我没表达清楚,我说的是握手阶段,例如请求建立目标代理的消息
VER | CMD | RSV | ATYP | DST.ADDR | DST.PORT |
---|---|---|---|---|---|
1 | 1 | 0x00 | 1 | 动态 | 2 |
对应的代码是parse_socket5_header()方法,但是该方法中未获取到指定数据流大小的时候选择close connection
walkor commented
对,握手的时候buffer不大。
RainUUU commented
好的,了解了。谢谢