我有使用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