網(wǎng)站簡(jiǎn)訊發(fā)送介面一直在被人循環(huán)調(diào)用, 嚴(yán)重影響到app 端的運(yùn)行性能, 我是先把網(wǎng)站關(guān)掉了, 但是接口一直還在調(diào)用, 性能問題還是沒解決, 求問解決思路
環(huán)境: windows server 2008 + apache + php + mysql
有幾個(gè)解決思路,我分別簡(jiǎn)單介紹下。
第一種,可以查看access.log日誌,看一下接口訪問情況,某個(gè)IP如果一分鐘內(nèi)幾十次那肯定是在刷了,可以對(duì)這個(gè)IP做一些限速或者封禁處理,比如這個(gè)IP再訪問你可以按照自訂的規(guī)則讓他去按一定時(shí)間訪問,或者乾脆直接黑名單,網(wǎng)絡(luò)層直接拒絕一切訪問。
第二種思路,記錄下訪問IP,和每分鐘最大訪問次數(shù)和訪問時(shí)間,當(dāng)用戶訪問接口並提交成功後,相關(guān)信息放到Memcache或者Redis裡,做一個(gè)對(duì)比如果過期了再提交,沒過期就不提交。
第三種思路,做反向代理,內(nèi)部才能呼叫接口,然後在代理層對(duì)訪問進(jìn)行限制,其實(shí)跟第一種思路差不太多。
以上是我個(gè)人思考的,不一定是最優(yōu)的解決方案,歡迎大家批評(píng)指正。
發(fā)送簡(jiǎn)訊前需先驗(yàn)證圖形驗(yàn)證碼,圖形驗(yàn)證碼也要在後端驗(yàn)證
簡(jiǎn)訊介面一定要做限制的。驗(yàn)證碼限制 ip限制 手機(jī)號(hào)碼限制。要不然一天幾萬塊都能刷出去
1.服務(wù)端控制每個(gè)手機(jī)號(hào)碼 每天發(fā)送的次數(shù),例如每天只能發(fā)3次
2.服務(wù)端每次發(fā)送簡(jiǎn)訊,必須填寫驗(yàn)證碼