【发布时间】:2012-01-15 14:31:20
【问题描述】:
我有一个应用程序,它必须在使用 localhost、127.0.0.1、::1 或任何环回地址时警告用户(目标主机用于数据库到数据库的连接,不一定在应用环境)。这很复杂,因为地址如下......
127.1127.0.01127.0000.0000.1127.0.0.254127.63.31.15127.255.255.2540::10000::00010000:0:0000::010000:0000:0000:0000:0000:0000:0000:0001
...将被消费代码正确解析,并将解析为环回。
什么是匹配任何排列的 IPv4 和 IPv6 环回地址的正则表达式?
【问题讨论】:
-
一个常见的安全准则是枚举您确实希望允许的情况,而不是尝试枚举不允许的情况。如果您可以限制为标准 IPv4 表示法(四个点分隔的八位字节),那么排除 127/8 就很容易了。
-
这是一个很好的规则。这个特定问题与安全无关(只是警告“注意:您的本地主机可能与服务器的不同”),但我看到了它背后的原理。