最近公司开始进行非法请求排查了, 看了眼某app的日志, 发现了一些奇怪的请求, 明明我们没有做微信小程序, 却有不少来自
Mozilla/5.0 (Linux; Android 8.1.0; vivo X20A Build/OPM1.171019.011; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.62 XWEB/2797 MMWEBSDK/20210501 Mobile Safari/537.36 MMWEBID/6473 MicroMessenger/8.0.6.1900(0x2800063B) Process/appbrand0 WeChat/arm64 Weixin NetType/WIFI Language/zh_CN ABI/arm64 MiniProgramEnv/android
的请求, 其中的MiniProgramEnv
格外显眼, 很明显, API被别人白嫖了...
nginx简单的过滤请求方法
1 2 3 4 |
location / { if ($http_user_agent ~* "wget") {return 403;} } |
进阶
1 2 3 4 5 6 7 8 9 10 |
include /etc/nginx/ua_blacklist; server { server_name www.xiaoc.cn; listen 80; location / { if ($block_ua) {return 403;} } } |
/etc/nginx/ua_blacklist
内容
1 2 3 4 5 |
map $http_user_agent $block_ua { default 0; ~*miniprogramenv 1; } |
大功告成, 这样在请求ua中带了miniprogramenv的(不区分大小写), 就会直接返回403啦!
来源: 国外博客