この例では example.net
を自分管理の信頼できるドメイン、example.com
を信頼出来ない他人のドメインとして例を書いています。
xip.io を独自のドメインで使っているとき、VirtualHost とかで、
<VirtualHost *>
ServerName oreore.192.0.2.123.xip.example.net
(snip)
</VirtualHost>
みたいに長ったらしい名前を書いてしまうと次のような問題があります。
- なんかキモい
- IPアドレス変わった時に設定ファイルを弄る必要があって面倒
- Vagrant box とかに含めて配布するときに不都合
次のようにすれば大丈夫ですが、
<VirtualHost *>
ServerName oreore.xip.example.net
ServerAlias oreore.*
(snip)
</VirtualHost>
これだと、
oreore.evil.example.com. IN A 192.0.2.123
みたいなのに反応してしまうので、DNSリバインディング攻撃に対して脆弱です。
次のように ServerAlias で信頼できるドメインを指定して、中間だけをワイルドカードにします。
<VirtualHost *>
ServerName oreore.xip.example.net
ServerAlias oreore.*.xip.example.net
(snip)
</VirtualHost>
これなら、
oreore.evil.example.com. IN A 192.0.2.123
みたいなのには反応しないし、.example.net
が信頼できるドメインなら安心です。
Apache のバーチャルホストで ore\.192\.0.2\.123\.xip\.io みたいにすべきところを ServerAlias で ore\.* みたいにするのはありだろうかなしだろうか
— ngyuki(えぬじーぶるー) (@ngyuki) 2015, 9月 2
とりあえず ServerAlias ore\.*\.xip\.io みたいにしてみる (実際には社内で xip-pdns 動かしているのでドメイン違うけれども)
— ngyuki(えぬじーぶるー) (@ngyuki) 2015, 9月 2