我有使用BufferedReader readLine()
從套接字讀取數據的情況,但readline()
讀取數據,直到它在Data中找到新的行字符/返回托架。
如果我的數據不包含新行字符,那麼它將繼續讀取數據,直到找到新行並且入侵者可以注入DOS攻擊。 甚至套接字可以超時。如何防止對Java的BufferedReader readLine()方法的Dos攻擊?
我知道一種解決方案可能是我們需要限制行大小並只讀取一些數據,並將數據追加到緩衝區。
是最佳解決方案還是我可以用其他方式做到這一點?
我可以重寫BufferedReader並重寫readLine()方法。這是可行的解決方案嗎?
另請參見[是否有可能使用超時讀取Java InputStream?](http://stackoverflow.com/questions/804951/is-it-possible-to-read-from-a-java-inputstream -with-a-timeout) –
Subhas的一個很好的答案 - [https://stackoverflow.com/a/17142341/748087](https://stackoverflow.com/a/17142341/748087) – mod