コード例 #1
0
        public static IActionResult HandlePost(NewController controller, string type, Paste edits = null)
        {
            if (controller.Request.Method != "POST" || controller.Request.Form.IsEmpty())
            {
                Console.Error.WriteLine("Refused paste: Non-Post");
                return(RejectPaste(controller, type));
            }
            IPAddress remoteAddress = controller.Request.HttpContext.Connection.RemoteIpAddress;
            string    realOrigin    = remoteAddress.ToString();
            string    sender        = IgnoredOrigins.Contains(realOrigin) ? "" : $"Remote IP: {realOrigin}";

            if (controller.Request.Headers.TryGetValue("X-Forwarded-For", out StringValues forwardHeader))
            {
                sender += ", X-Forwarded-For: " + string.Join(" / ", forwardHeader);
                if (PasteServer.TrustXForwardedFor && forwardHeader.Count > 0)
                {
                    realOrigin = string.Join(" / ", forwardHeader);
                }
            }
            if (controller.Request.Headers.TryGetValue("REMOTE_ADDR", out StringValues remoteAddr))
            {
                sender += ", REMOTE_ADDR: " + string.Join(" / ", remoteAddr);
            }
            if (sender.StartsWith(", "))
            {
                sender = sender[(", ".Length)..];
コード例 #2
0
 public static IActionResult RejectPaste(NewController controller, string type)
 {
     return(controller.View("Index", new NewPasteModel()
     {
         ShowRejection = true, NewType = type
     }));
 }