• 请不要在回答技术问题时复制粘贴 AI 生成的内容
nai1si
V2EX  ›  程序员

短信接口被攻击,怎么禁掉境外 ip 访问

  •  
  •   nai1si · Jul 30, 2024 · 4301 views
    This topic created in 829 days ago, the information mentioned may be changed or developed.

    请问怎么禁掉境外 ip 访问,阿里云的服务器。已做频率限制,增加图形验证码。又怕图形验证码被识别,现在都不敢往里充值了。

    29 replies  •  2024-07-31 12:42:47 +08:00
    cJ8SxGOWRH0LSelC
    cJ8SxGOWRH0LSelC
    Jul 30, 2024
    1
    限制频率, 增加验证码, 已经够了, 再增加限制就太影响用户体验了, 如果这样还承受不了, 换其他方式吧。
    llcxx
    llcxx
    Jul 30, 2024
    2
    判断 IP 是否中国 IP 段,不是就默认不发短信就好
    nai1si
    nai1si
    OP
    Jul 30, 2024
    3
    怎么判断 ip 是不是境内 ip
    toneewang
    toneewang
    Jul 30, 2024 via iPhone
    4
    @nai1si 根据 ip 库,能大部分匹配,不能最准确
    nai1si
    nai1si
    OP
    Jul 30, 2024
    5
    @toneewang ip 库在哪里?
    37Y37
    37Y37
    Jul 30, 2024 via Android
    6
    通过 DNS 解析,境外的不解析或者解析个错误的地址,很多 DNS 都提供这功能,例如阿里云
    julyclyde
    julyclyde
    Jul 30, 2024
    7
    @nai1si geoip
    nginx 可以直接支持
    fredcc
    fredcc
    Jul 30, 2024
    8
    云防火墙-防护配置-访问控制-互联网边界-入向策略

    waf 也有类似设置
    Solix
    Solix
    Jul 30, 2024 via iPhone
    9
    dns 侧,线路选境外,解析到 127.0.0.1 即可
    zjsxwc
    zjsxwc
    Jul 30, 2024
    10
    https://github.com/17mon/china_ip_list/blob/master/china_ip_list.txt
    写个 bash 脚本让 iptables 只允许上面的中国 ip 访问就行

    #!/bin/bash

    # 清空所有规则
    iptables -F

    # 允许本地回环接口的通信
    iptables -A INPUT -i lo -j ACCEPT

    # 允许已建立的连接和相关连接
    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

    # 获取中国的 IP 段列表(这需要您事先准备好)
    CHINA_IP_RANGES=(
    "1.0.1.0/24"
    "2.0.0.0/16"
    # ..... 添加更多的中国 IP 段
    )

    # 对于每个中国的 IP 段,添加允许规则
    for ip_range in "${CHINA_IP_RANGES[@]}"
    do
    iptables -A INPUT -s $ip_range -j ACCEPT
    done

    # 拒绝其他所有的输入连接
    iptables -A INPUT -j DROP
    nai1si
    nai1si
    OP
    Jul 30, 2024
    11
    @gaobh 攻击方本地可以改 hosts 文件
    EdisonEdz
    EdisonEdz
    Jul 30, 2024
    12
    geoip ,加个实现包判断下 ip 就好了
    nai1si
    nai1si
    OP
    Jul 30, 2024 via Android
    13
    @EdisonEdz 目前你公司也在用吗? 效果好不好
    SilenceLL
    SilenceLL
    Jul 30, 2024
    14
    用 nginx + geoip 封掉就可以,你可以看下 nginx access 日志,里面的 country 字段是否跟你的预期一致。
    nai1si
    nai1si
    OP
    Jul 30, 2024 via Android
    15
    研究研究
    abccccabc
    abccccabc
    Jul 30, 2024
    16
    你的验证码换成汉字,目前能识别汉字图形的系统不多吧?
    flytsuki
    flytsuki
    Jul 30, 2024
    17
    让运费在防火墙拦截,只开放中国的 ip 段
    eluotao
    eluotao
    Jul 30, 2024
    19
    直接非注册用户不发验证码。
    feiyan35488
    feiyan35488
    Jul 30, 2024
    20
    @nai1si 有免费的 ip 库,如 ipip
    加上验证码,尽量用滑动或智能验证码,提升用户体验
    tf2
    tf2
    Jul 30, 2024
    21
    @nai1si #11



    “@gaobh 攻击方本地可以改 hosts 文件”

    兄弟。如果你觉得改 hosts 文件就能改 ip ,可能你需要补的课比较多。。。漏洞不止这一处
    nai1si
    nai1si
    OP
    Jul 30, 2024 via Android
    22
    @eluotao 注册的时候就得用,哈哈
    nai1si
    nai1si
    OP
    Jul 30, 2024 via Android
    23
    @lambdaq 我就知道这一处,请指教
    nai1si
    nai1si
    OP
    Jul 30, 2024 via Android
    24
    @feiyan35488 滑动验证码是否涉及到机器学习
    nai1si
    nai1si
    OP
    Jul 30, 2024 via Android
    25
    @SilenceLL 打算先试试看看效果咋样
    eluotao
    eluotao
    Jul 30, 2024
    26
    分 3 部:
    1 、先分析 ip + 浏览器指纹国内还是国外 任何 ip 提交超过 2 个号码 就把号码和 ip 加黑名单 有免费 收费
    2 、再分析提交号码是否虚拟号等不正常运营号码 只要是,直接返回拒绝 此方法免费
    3 、最后商用验证码 滑块即可 免费 收费 都有

    这样下来基本就能解决大部分黑产,少量有技术的,还有一部分,就上微信扫码
    nai1si
    nai1si
    OP
    Jul 31, 2024
    27
    @eluotao 滑块验证码,免费的有推荐吗
    feiyan35488
    feiyan35488
    Jul 31, 2024
    28
    @nai1si 建议用商用的,不是很贵
    免费的话,可以找开源的,或商用产品的试用流量
    alamak76
    alamak76
    Jul 31, 2024
    29
    1. cloudflare
    2. 自家防火门,用 ip2location ip 库来防国外。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4946 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 645ms · UTC 07:35 · PVG 15:35 · LAX 23:35 · JFK 02:35
    ♥ Do have faith in what you're doing.