網(wǎng)站短信發(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è)解決思路,我分別簡單介紹下。
第一種,可以查看access.log日志,看一下接口訪問情況,某個(gè)IP如果一分鐘內(nèi)幾十次那肯定是在刷了,可以對這個(gè)IP做一些限速或者封禁處理,比如這個(gè)IP再訪問你可以按照自定義的規(guī)則讓他去按一定時(shí)間訪問,或者干脆直接黑名單,網(wǎng)絡(luò)層直接拒絕一切訪問。
第二種思路,記錄下訪問IP,和每分鐘最大訪問次數(shù)和訪問時(shí)間,當(dāng)用戶訪問接口并提交成功后,相關(guān)信息放到Memcache或者Redis里,做一個(gè)對比如果過期了再提交,沒過期就不提交。
第三種思路,做反向代理,內(nèi)部才能調(diào)用接口,然后在代理層對訪問進(jìn)行限制,其實(shí)跟第一種思路差不太多。
以上是我個(gè)人思考的,不一定是最優(yōu)的解決方案,歡迎大家批評指正。
發(fā)送短信前需先驗(yàn)證圖形驗(yàn)證碼,圖形驗(yàn)證碼也要在后端進(jìn)行驗(yàn)證
短信接口一定要做限制的。驗(yàn)證碼限制 ip限制 手機(jī)號限制。要不然一天幾萬塊都能刷出去
1.服務(wù)端控制每個(gè)手機(jī)號 每天發(fā)送的次數(shù),比如每天只能發(fā)3次
2.服務(wù)端每次發(fā)送短信,必須填寫驗(yàn)證碼
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://m.miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號