diff --git a/ArchiSteamFarm/ArchiSteamFarm.csproj b/ArchiSteamFarm/ArchiSteamFarm.csproj index 6b66ebf1f..03406aa30 100644 --- a/ArchiSteamFarm/ArchiSteamFarm.csproj +++ b/ArchiSteamFarm/ArchiSteamFarm.csproj @@ -112,6 +112,7 @@ + diff --git a/ArchiSteamFarm/WCF.cs b/ArchiSteamFarm/WCF.cs index b1e9f62ce..42483ba9e 100644 --- a/ArchiSteamFarm/WCF.cs +++ b/ArchiSteamFarm/WCF.cs @@ -202,6 +202,9 @@ namespace ArchiSteamFarm { switch (Program.GlobalConfig.WCFBinding) { case GlobalConfig.EWCFBinding.NetTcp: result = new NetTcpBinding { + // This is a balance between default of 8192 which is not enough, and int.MaxValue which is prone to DoS attacks + ReaderQuotas = { MaxStringContentLength = ushort.MaxValue }, + // We use SecurityMode.None for Mono compatibility // Yes, also on Windows, for Mono<->Windows communication Security = { Mode = SecurityMode.None } @@ -209,10 +212,17 @@ namespace ArchiSteamFarm { break; case GlobalConfig.EWCFBinding.BasicHttp: - result = new BasicHttpBinding(); + result = new BasicHttpBinding { + // This is a balance between default of 8192 which is not enough, and int.MaxValue which is prone to DoS attacks + ReaderQuotas = { MaxStringContentLength = ushort.MaxValue } + }; + break; case GlobalConfig.EWCFBinding.WSHttp: result = new WSHttpBinding { + // This is a balance between default of 8192 which is not enough, and int.MaxValue which is prone to DoS attacks + ReaderQuotas = { MaxStringContentLength = ushort.MaxValue }, + // We use SecurityMode.None for Mono compatibility // Yes, also on Windows, for Mono<->Windows communication Security = { Mode = SecurityMode.None }