Blocked origins
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Kieran 2023-11-03 01:13:08 +09:00
parent 7b59407b9a
commit 6481eb54f0
Signed by: Kieran
GPG Key ID: DE71CEB3925BE941
2 changed files with 21 additions and 4 deletions

View File

@ -111,6 +111,16 @@ public class DownloadController : Controller
private async Task<VoidFileResponse?> SetupDownload(Guid id)
{
var origin = Request.Headers.Origin.FirstOrDefault();
if (!string.IsNullOrEmpty(origin) && Uri.TryCreate(origin, UriKind.RelativeOrAbsolute, out var u))
{
if (_settings.BlockedOrigins.Any(a => string.Equals(a, u.DnsSafeHost, StringComparison.InvariantCultureIgnoreCase)))
{
Response.StatusCode = (int)HttpStatusCode.Forbidden;
return default;
}
}
var meta = await _fileInfo.Get(id, false);
if (meta == null)
{
@ -182,6 +192,7 @@ public class DownloadController : Controller
{
return true;
}
if (order?.Status is PaywallOrderStatus.Unpaid)
{
// check status
@ -191,6 +202,7 @@ public class DownloadController : Controller
{
await _paymentOrders.UpdateStatus(order.Id, status.Status);
}
if (status?.Status == PaywallOrderStatus.Paid)
{
return true;

View File

@ -132,6 +132,11 @@ namespace VoidCat.Model
/// Lightning node configuration for LNProxy services
/// </summary>
public LndConfig? LndConfig { get; init; }
/// <summary>
/// Blocked origin hostnames
/// </summary>
public List<string> BlockedOrigins { get; init; } = new();
}
public sealed class TorSettings