码迷,mamicode.com
首页 > Web开发 > 详细

web服务器不能正常发送短信

时间:2015-04-16 14:34:39      阅读:356      评论:0      收藏:0      [点我收藏+]

标签:web服务器   网站开发   验证码   server   防火墙   

                       

网站注册,用户获取验证码失败,经过网站开发兄弟提醒,研究了下fsockopen()等函数,现摘要如下

Fsockopen()

(PHP4,PHP5)

用于打开一个网络链接或一个unix套接字链接。

也就是说,既然此函数会参与短信API收发,那么就有可能该函数打开了一个unix套接字链接,此时网站开发的兄弟亦证实了这点。

于是我马上想到很有可能是采用了三种套接字类型中的流套接字(sock_stream)。那么就会产生3次握手。于是用iptables命令发现,交互包被防火墙drop掉了。但是仅到此,问题才解决了一小部分而已,因为我们还要抓取端口,以便制定相应的防火墙规则。

 

我们先看下web服务器发送短信的流程

技术分享

根据流程图,我们很容易看出有可能出现问题的地方,我们做下标记

技术分享

因此我们在这两个地方抓包,首先是用户与web server交互之处,抓包情况如下

技术分享

我们很轻易的就观测到,在用户申请验证码阶段,用的80端口,这对于web服务器来说,是不可能被drop掉的,此处排除。

接着,我们在服务器上抓包

技术分享

技术分享

发现,服务器访问短信网站API时候采用的是80端口,而服务器自己则是随机分配的一个端口,所以被防火墙drop掉了。因此需调试防火墙规则。

故障排除。

 

思考:由此我们是不是可以猜测,但凡此类短信注册网站是否都会有此bug。也许是我对iptables理解有限,据我目前所知,无论是定位源或目,或者再狠点,两者都一并限定了,都是会随之开放比较大的权限,相应的也会是网站防御的薄弱处之一。

若有思考有误,欢迎大家来吐槽!

 

END


本文出自 “百折不回” 博客,请务必保留此出处http://changbo.blog.51cto.com/1316452/1633299

web服务器不能正常发送短信

标签:web服务器   网站开发   验证码   server   防火墙   

原文地址:http://changbo.blog.51cto.com/1316452/1633299

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!