style: format codebase
This commit is contained in:
@@ -13,7 +13,8 @@ defmodule ComponentsElixirWeb.FileController do
|
||||
|
||||
conn
|
||||
|> put_resp_content_type(mime_type)
|
||||
|> put_resp_header("cache-control", "public, max-age=86400") # Cache for 1 day
|
||||
# Cache for 1 day
|
||||
|> put_resp_header("cache-control", "public, max-age=86400")
|
||||
|> send_file(200, file_path)
|
||||
else
|
||||
conn
|
||||
@@ -40,7 +41,8 @@ defmodule ComponentsElixirWeb.FileController do
|
||||
|
||||
conn
|
||||
|> put_resp_content_type(mime_type)
|
||||
|> put_resp_header("cache-control", "public, max-age=86400") # Cache for 1 day
|
||||
# Cache for 1 day
|
||||
|> put_resp_header("cache-control", "public, max-age=86400")
|
||||
|> put_resp_header("content-disposition", "inline; filename=\"#{filename}\"")
|
||||
|> send_file(200, file_path)
|
||||
else
|
||||
@@ -64,9 +66,9 @@ defmodule ComponentsElixirWeb.FileController do
|
||||
# Security validation: prevent directory traversal and only allow safe characters
|
||||
# Allow letters, numbers, spaces, dots, dashes, underscores, parentheses, and basic punctuation
|
||||
if String.match?(decoded_filename, ~r/^[a-zA-Z0-9\s_\-\.\(\)\[\]]+$/) and
|
||||
not String.contains?(decoded_filename, "..") and
|
||||
not String.starts_with?(decoded_filename, "/") and
|
||||
not String.contains?(decoded_filename, "\\") do
|
||||
not String.contains?(decoded_filename, "..") and
|
||||
not String.starts_with?(decoded_filename, "/") and
|
||||
not String.contains?(decoded_filename, "\\") do
|
||||
{:ok, decoded_filename}
|
||||
else
|
||||
{:error, "Invalid filename: contains unsafe characters"}
|
||||
|
||||
Reference in New Issue
Block a user