URL を指定すると、その出力を定期的に取得するツールをコーディングしています。問題は、出力が単純で軽量な HTML ページ (ほとんどの場合に予想される) ではなく、重いデータ ストリーム (つまり、/dev/urandom から直接、DoS 攻撃の可能性がある) になる可能性があることです。
java.net.URL
+を使用してjava.net.URLConnection
、接続と読み取りのタイムアウトを 30 秒に設定しています。現在、入力はjava.io.BufferedReader
、を使用して、によって読み取られていreadLine()
ます。
可能な解決策:
java.io.BufferedReader.read()
バイトごとに使用し、それらをカウントし、制限に達したら接続を閉じます。問題は、攻撃者が 29 秒ごとに 1 バイトを送信する可能性があるため、読み取り/接続タイムアウトがほとんど発生しないことです (204800B * 29 秒 = 68 日)。- スレッドの実行を 1 ~ 5 分に制限し、
java.io.BufferedReader.readLine()
. ここに問題はありますか?
車輪を再発明しようとしているような気がしますが、解決策は非常に簡単ですが、頭に浮かびません。
前もって感謝します。