Files
MSCO-Dedicated-Server/MSCO.Server.csproj
T
MrMahoandClaude Opus 5.5 4cc71aa079 Server 2.10.4: HTTPS for the web panel and hostile client hardening
- Panel over HTTPS on the game port (TLS handshake detected like HTTP); self-signed
  certificate in data/panel_cert.pfx (fingerprint in the log) or an own PFX
  (PanelCertificatePath); remote HTTP is redirected to HTTPS (not locally / behind
  a proxy); cookie Secure over HTTPS; PanelHttps=false turns it off
- Panel login: also locked per user name (16 failures / 15 min), failure lists
  bounded, user names in the log without control characters
- panel_users.json, panel_sessions.json, server.json, certificate: owner-only on Linux
- Players: names/chat without control or direction characters (no fake log lines),
  no '<' '>' in names; '* ' system-style chat, msco.* messages (time/weather) and
  MSCO_INSTALL only from admins; NaN/absurd money changes dropped (could break the
  shared money for good)
- Extra headers: Permissions-Policy, Cross-Origin-Opener-Policy
- 11 new tests (165 pass)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 18:38:54 +02:00

39 lines
1.3 KiB
XML

<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net10.0</TargetFramework>
<Nullable>disable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<RootNamespace>MSCO.Server</RootNamespace>
<AssemblyName>MSCO.Server</AssemblyName>
<Version>2.10.4</Version>
<Company>MBM</Company>
<Product>MSCO Dedicated Server</Product>
<InvariantGlobalization>true</InvariantGlobalization>
<!-- Symbol der .exe (Windows) -->
<ApplicationIcon>logo.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<!-- Web-Panel (Kestrel) -->
<FrameworkReference Include="Microsoft.AspNetCore.App" />
<EmbeddedResource Include="Panel/index.html" LogicalName="panel.index.html" />
<EmbeddedResource Include="Panel/app.js" LogicalName="panel.app.js" />
<EmbeddedResource Include="Panel/i18n.js" LogicalName="panel.i18n.js" />
<EmbeddedResource Include="Panel/app.css" LogicalName="panel.app.css" />
<EmbeddedResource Include="Panel/logo.png" LogicalName="panel.logo.png" />
</ItemGroup>
<ItemGroup>
<!-- Tests sind ein eigenes Projekt im Ordner Tests -->
<Compile Remove="Tests/**" />
<None Remove="Tests/**" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="SharpCompress" Version="0.50.4" />
</ItemGroup>
</Project>