Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions proven.ipkg
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,7 @@ modules = Proven
, Proven.SafeHTTP
, Proven.SafePromptInjection
, Proven.SafeCORS
, Proven.SafeCORS.Proofs
, Proven.SafeAPIKey
, Proven.SafeWebSocket
-- Security hardening modules (v1.2.0)
Expand Down
19 changes: 14 additions & 5 deletions src/Proven/SafeCORS/Proofs.idr
Original file line number Diff line number Diff line change
Expand Up @@ -17,25 +17,34 @@ import Data.List
-- Default Policy Properties
--------------------------------------------------------------------------------

-- NOTE: bare `defaultPolicy` in these type signatures is implicitly
-- bound as a fresh lowercase variable by Idris2 0.8.0, shadowing
-- `Proven.SafeCORS.defaultPolicy`. The `Refl` then cannot reduce
-- because the type-level `defaultPolicy` is opaque. Qualifying with
-- `Proven.SafeCORS.defaultPolicy` resolves the shadowing. See
-- hyperpolymath/proven#92.

||| The default policy denies all origins.
public export
defaultPolicyDeniesAll : (origin : Origin) -> isOriginAllowed defaultPolicy origin = False
defaultPolicyDeniesAll : (origin : Origin) ->
isOriginAllowed Proven.SafeCORS.defaultPolicy origin = False
defaultPolicyDeniesAll _ = Refl

||| The default policy is not an unsafe configuration.
public export
defaultPolicyIsSafe : isUnsafeConfiguration defaultPolicy = False
defaultPolicyIsSafe : isUnsafeConfiguration Proven.SafeCORS.defaultPolicy = False
defaultPolicyIsSafe = Refl

||| The default policy has no validation errors.
public export
defaultPolicyNoErrors : validatePolicy defaultPolicy = []
defaultPolicyNoErrors : validatePolicy Proven.SafeCORS.defaultPolicy = []
defaultPolicyNoErrors = Refl

||| The default policy does not generate headers (denies all).
public export
defaultPolicyNoHeaders : (origin : Origin) -> generateHeaders defaultPolicy origin = Nothing
defaultPolicyNoHeaders origin = Refl
defaultPolicyNoHeaders : (origin : Origin) ->
generateHeaders Proven.SafeCORS.defaultPolicy origin = Nothing
defaultPolicyNoHeaders _ = Refl

--------------------------------------------------------------------------------
-- Wildcard+Credentials Safety
Expand Down
Loading