我使用.net的SslStream类来处理Http流量。问题我面临的问题是,如果ssl握手因任何原因失败.net会抛出一个异常,这使我容易受到dos攻击,因为.net异常相当慢,不应该在正常的程序流程中使用
是否有使用SslStream的替代方法,或者是否有办法使SslStream处理失败并且无声地处理#S; (没有例外)?你会建议什么?
这里是代码(可能会在' AuthenticateAsServer'调用中抛出异常):
public void Init(Socket s, bool isSSL)
{
m_s = s;
this.isSSL = isSSL;
stream = new NetworkStream(s);
if (isSSL)
{
SslStream sslstrm = new SslStream(stream);
stream = sslstrm;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
sslstrm.AuthenticateAsServer(serverCertificate,
false, SslProtocols.Tls, false);
}
}