mirror of
https://github.com/openappsec/openappsec.git
synced 2025-11-16 09:21:54 +03:00
Compare commits
24 Commits
Feb_27_202
...
orianelou-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b1781234fd | ||
|
|
f71dca2bfa | ||
|
|
bd333818ad | ||
|
|
95e776d7a4 | ||
|
|
df7be864e2 | ||
|
|
ba8ec26344 | ||
|
|
97add465e8 | ||
|
|
38cb1f2c3b | ||
|
|
1dd9371840 | ||
|
|
f23d22a723 | ||
|
|
b51cf09190 | ||
|
|
ceb6469a7e | ||
|
|
b0ae283eed | ||
|
|
5fcb9bdc4a | ||
|
|
fb5698360b | ||
|
|
147626bc7f | ||
|
|
448991ef75 | ||
|
|
2b1ee84280 | ||
|
|
77dd288eee | ||
|
|
3cb4def82e | ||
|
|
a0dd7dd614 | ||
|
|
88eed946ec | ||
|
|
3e1ad8b0f7 | ||
|
|
bd35c421c6 |
34
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
34
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
---
|
||||||
|
name: "Bug Report"
|
||||||
|
description: "Report a bug with open-appsec"
|
||||||
|
labels: [bug]
|
||||||
|
---
|
||||||
|
|
||||||
|
**Checklist**
|
||||||
|
- Have you checked the open-appsec troubleshooting guides - https://docs.openappsec.io/troubleshooting/troubleshooting
|
||||||
|
- Yes / No
|
||||||
|
- Have you checked the existing issues and discossions in github for the same issue
|
||||||
|
- Yes / No
|
||||||
|
|
||||||
|
**Describe the bug**
|
||||||
|
A clear and concise description of what the bug is.
|
||||||
|
|
||||||
|
**To Reproduce**
|
||||||
|
Steps to reproduce the behavior:
|
||||||
|
1. Go to '...'
|
||||||
|
2. Run '...'
|
||||||
|
3. See error '...'
|
||||||
|
|
||||||
|
**Expected behavior**
|
||||||
|
A clear and concise description of what you expected to happen.
|
||||||
|
|
||||||
|
**Screenshots or Logs**
|
||||||
|
If applicable, add screenshots or logs to help explain the issue.
|
||||||
|
|
||||||
|
**Environment (please complete the following information):**
|
||||||
|
- open-appsec version:
|
||||||
|
- Deployment type (Docker, Kubernetes, etc.):
|
||||||
|
- OS:
|
||||||
|
|
||||||
|
**Additional context**
|
||||||
|
Add any other context about the problem here.
|
||||||
8
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
8
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
blank_issues_enabled: false
|
||||||
|
contact_links:
|
||||||
|
- name: "Documentation & FAQ"
|
||||||
|
url: "https://docs.openappsec.io/"
|
||||||
|
about: "Check the documentation before submitting an issue."
|
||||||
|
- name: "Feature Requests & Discussions"
|
||||||
|
url: "https://github.com/open-appsec/discussions"
|
||||||
|
about: "Please open a discussion for feature requests instead of an issue."
|
||||||
17
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
17
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
name: "Feature Request"
|
||||||
|
description: "Suggest a new feature or improvement"
|
||||||
|
labels: [enhancement]
|
||||||
|
---
|
||||||
|
|
||||||
|
**Is your feature request related to a problem? Please describe.**
|
||||||
|
A clear and concise description of what the problem is.
|
||||||
|
|
||||||
|
**Describe the solution you'd like**
|
||||||
|
A clear and concise description of what you want to happen.
|
||||||
|
|
||||||
|
**Describe alternatives you've considered**
|
||||||
|
A clear and concise description of any alternative solutions or features you've considered.
|
||||||
|
|
||||||
|
**Additional context**
|
||||||
|
Add any other context or screenshots about the feature request here.
|
||||||
17
.github/ISSUE_TEMPLATE/nginx_version_support.md
vendored
Normal file
17
.github/ISSUE_TEMPLATE/nginx_version_support.md
vendored
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
name: "Nginx Version Support Request"
|
||||||
|
description: "Check if a specific Nginx version is supported"
|
||||||
|
---
|
||||||
|
|
||||||
|
**Nginx & OS Version:**
|
||||||
|
Which Nginx and OS version are you using?
|
||||||
|
|
||||||
|
**Output of nginx -V**
|
||||||
|
Share the output of nginx -v
|
||||||
|
|
||||||
|
**Expected Behavior:**
|
||||||
|
What do you expect to happen with this version?
|
||||||
|
|
||||||
|
**Checklist**
|
||||||
|
- Have you considered a docker based deployment - find more information here https://docs.openappsec.io/getting-started/start-with-docker?
|
||||||
|
- Yes / No
|
||||||
@@ -137,6 +137,10 @@ spec:
|
|||||||
type: array
|
type: array
|
||||||
items:
|
items:
|
||||||
type: object
|
type: object
|
||||||
|
required:
|
||||||
|
- mode
|
||||||
|
- threatPreventionPractices
|
||||||
|
- accessControlPractices
|
||||||
properties:
|
properties:
|
||||||
name:
|
name:
|
||||||
type: string
|
type: string
|
||||||
@@ -1216,3 +1220,886 @@ spec:
|
|||||||
kind: PolicyActivation
|
kind: PolicyActivation
|
||||||
shortNames:
|
shortNames:
|
||||||
- policyactivation
|
- policyactivation
|
||||||
|
---
|
||||||
|
apiVersion: apiextensions.k8s.io/v1
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
metadata :
|
||||||
|
name : policiesns.openappsec.io
|
||||||
|
creationTimestamp: null
|
||||||
|
spec:
|
||||||
|
group: openappsec.io
|
||||||
|
versions:
|
||||||
|
- name: v1beta2
|
||||||
|
served: true
|
||||||
|
storage: true
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
spec:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
appsecClassName:
|
||||||
|
type: string
|
||||||
|
default:
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- mode
|
||||||
|
- threatPreventionPractices
|
||||||
|
- accessControlPractices
|
||||||
|
properties:
|
||||||
|
mode:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- prevent-learn
|
||||||
|
- detect-learn
|
||||||
|
- prevent
|
||||||
|
- detect
|
||||||
|
- inactive
|
||||||
|
default: detect-learn
|
||||||
|
threatPreventionPractices:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
accessControlPractices:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
customResponse:
|
||||||
|
type: string
|
||||||
|
default: "403"
|
||||||
|
triggers:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
sourceIdentifiers:
|
||||||
|
type: string
|
||||||
|
trustedSources:
|
||||||
|
type: string
|
||||||
|
exceptions:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
specificRules:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
name:
|
||||||
|
type: string
|
||||||
|
host:
|
||||||
|
type: string
|
||||||
|
mode:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- prevent-learn
|
||||||
|
- detect-learn
|
||||||
|
- prevent
|
||||||
|
- detect
|
||||||
|
- inactive
|
||||||
|
default: detect-learn
|
||||||
|
threatPreventionPractices:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
accessControlPractices:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
triggers:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
customResponse:
|
||||||
|
type: string
|
||||||
|
sourceIdentifiers:
|
||||||
|
type: string
|
||||||
|
trustedSources:
|
||||||
|
type: string
|
||||||
|
exceptions:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
|
||||||
|
scope: Namespaced
|
||||||
|
names:
|
||||||
|
plural: policiesns
|
||||||
|
singular: policyns
|
||||||
|
kind: PolicyNS
|
||||||
|
shortNames:
|
||||||
|
- policyns
|
||||||
|
---
|
||||||
|
apiVersion: apiextensions.k8s.io/v1
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
metadata :
|
||||||
|
name : accesscontrolpracticesns.openappsec.io
|
||||||
|
creationTimestamp: null
|
||||||
|
spec:
|
||||||
|
group: openappsec.io
|
||||||
|
versions:
|
||||||
|
- name: v1beta2
|
||||||
|
served: true
|
||||||
|
storage: true
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
spec:
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- rateLimit
|
||||||
|
properties:
|
||||||
|
appsecClassName:
|
||||||
|
type: string
|
||||||
|
practiceMode:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- inherited
|
||||||
|
- prevent
|
||||||
|
- detect
|
||||||
|
- inactive
|
||||||
|
default: inherited
|
||||||
|
rateLimit:
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- overrideMode
|
||||||
|
properties:
|
||||||
|
overrideMode:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- prevent
|
||||||
|
- detect
|
||||||
|
- inactive
|
||||||
|
- inherited
|
||||||
|
default: inactive
|
||||||
|
rules:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
action:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- inherited
|
||||||
|
- prevent
|
||||||
|
- detect
|
||||||
|
default: inherited
|
||||||
|
condition:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
- value
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
type: string
|
||||||
|
value:
|
||||||
|
type: string
|
||||||
|
uri:
|
||||||
|
type: string
|
||||||
|
limit:
|
||||||
|
type: integer
|
||||||
|
unit:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- minute
|
||||||
|
- second
|
||||||
|
default: minute
|
||||||
|
triggers:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
comment:
|
||||||
|
type: string
|
||||||
|
scope: Namespaced
|
||||||
|
names:
|
||||||
|
plural: accesscontrolpracticesns
|
||||||
|
singular: accesscontrolpracticens
|
||||||
|
kind: AccessControlPracticeNS
|
||||||
|
shortNames:
|
||||||
|
- acpns
|
||||||
|
---
|
||||||
|
apiVersion: apiextensions.k8s.io/v1
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
metadata:
|
||||||
|
name : customresponsesns.openappsec.io
|
||||||
|
creationTimestamp: null
|
||||||
|
spec:
|
||||||
|
group: openappsec.io
|
||||||
|
versions:
|
||||||
|
- name: v1beta2
|
||||||
|
served: true
|
||||||
|
storage: true
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
spec:
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- mode
|
||||||
|
properties:
|
||||||
|
appsecClassName:
|
||||||
|
type: string
|
||||||
|
mode:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- block-page
|
||||||
|
- redirect
|
||||||
|
- response-code-only
|
||||||
|
default: response-code-only
|
||||||
|
messageTitle:
|
||||||
|
type: string
|
||||||
|
messageBody:
|
||||||
|
type: string
|
||||||
|
httpResponseCode:
|
||||||
|
type: integer
|
||||||
|
minimum: 100
|
||||||
|
maximum: 599
|
||||||
|
default: 403
|
||||||
|
redirectUrl:
|
||||||
|
type: string
|
||||||
|
redirectAddXEventId:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
required:
|
||||||
|
- mode
|
||||||
|
scope: Namespaced
|
||||||
|
names:
|
||||||
|
plural: customresponsesns
|
||||||
|
singular: customresponsens
|
||||||
|
kind: CustomResponseNS
|
||||||
|
shortNames:
|
||||||
|
- customresponsens
|
||||||
|
---
|
||||||
|
apiVersion: apiextensions.k8s.io/v1
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
metadata :
|
||||||
|
name: exceptionsns.openappsec.io
|
||||||
|
spec:
|
||||||
|
group: openappsec.io
|
||||||
|
versions:
|
||||||
|
- name: v1beta2
|
||||||
|
served: true
|
||||||
|
storage: true
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
spec:
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- action
|
||||||
|
- condition
|
||||||
|
properties:
|
||||||
|
appsecClassName:
|
||||||
|
type: string
|
||||||
|
action:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- skip
|
||||||
|
- accept
|
||||||
|
- drop
|
||||||
|
- suppressLog
|
||||||
|
default: accept
|
||||||
|
condition:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- key
|
||||||
|
- value
|
||||||
|
properties:
|
||||||
|
key:
|
||||||
|
type: string
|
||||||
|
value:
|
||||||
|
type: string
|
||||||
|
scope: Namespaced
|
||||||
|
names:
|
||||||
|
plural: exceptionsns
|
||||||
|
singular: exceptionns
|
||||||
|
kind: ExceptionNS
|
||||||
|
shortNames:
|
||||||
|
- exceptionns
|
||||||
|
---
|
||||||
|
apiVersion: apiextensions.k8s.io/v1
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
metadata :
|
||||||
|
name : logtriggersns.openappsec.io
|
||||||
|
creationTimestamp: null
|
||||||
|
spec:
|
||||||
|
group: openappsec.io
|
||||||
|
versions:
|
||||||
|
- name: v1beta2
|
||||||
|
served: true
|
||||||
|
storage: true
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
spec:
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- accessControlLogging
|
||||||
|
- appsecLogging
|
||||||
|
- additionalSuspiciousEventsLogging
|
||||||
|
- extendedLogging
|
||||||
|
- logDestination
|
||||||
|
properties:
|
||||||
|
appsecClassName:
|
||||||
|
type: string
|
||||||
|
accessControlLogging:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
allowEvents:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
dropEvents:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
appsecLogging:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
detectEvents:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
preventEvents:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
allWebRequests:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
additionalSuspiciousEventsLogging:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
enabled:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
minSeverity:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- high
|
||||||
|
- critical
|
||||||
|
default: high
|
||||||
|
responseBody:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
responseCode:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
extendedLogging:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
urlPath:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
urlQuery:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
httpHeaders:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
requestBody:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
logDestination:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
cloud:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
syslogService:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
address:
|
||||||
|
type: string
|
||||||
|
port:
|
||||||
|
type: integer
|
||||||
|
logToAgent:
|
||||||
|
type: boolean
|
||||||
|
default: true
|
||||||
|
stdout:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
format:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- json
|
||||||
|
- json-formatted
|
||||||
|
default: json
|
||||||
|
local-tuning:
|
||||||
|
type: boolean
|
||||||
|
cefService:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
address:
|
||||||
|
type: string
|
||||||
|
port:
|
||||||
|
type: integer
|
||||||
|
proto:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- tcp
|
||||||
|
- udp
|
||||||
|
scope: Namespaced
|
||||||
|
names:
|
||||||
|
plural: logtriggersns
|
||||||
|
singular: logtriggerns
|
||||||
|
kind: LogTriggerNS
|
||||||
|
shortNames:
|
||||||
|
- logtriggerns
|
||||||
|
---
|
||||||
|
apiVersion: apiextensions.k8s.io/v1
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
metadata :
|
||||||
|
name : sourcesidentifiersns.openappsec.io
|
||||||
|
creationTimestamp: null
|
||||||
|
spec:
|
||||||
|
group: openappsec.io
|
||||||
|
versions:
|
||||||
|
- name: v1beta2
|
||||||
|
served: true
|
||||||
|
storage: true
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
spec:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- sourcesIdentifiers
|
||||||
|
properties:
|
||||||
|
appsecClassName:
|
||||||
|
type: string
|
||||||
|
sourcesIdentifiers:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- identifier
|
||||||
|
properties:
|
||||||
|
identifier:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- headerkey
|
||||||
|
- JWTKey
|
||||||
|
- cookie
|
||||||
|
- sourceip
|
||||||
|
- x-forwarded-for
|
||||||
|
default: sourceip
|
||||||
|
value:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
scope: Namespaced
|
||||||
|
names:
|
||||||
|
plural: sourcesidentifiersns
|
||||||
|
singular: sourcesidentifierns
|
||||||
|
kind: SourcesIdentifierNS
|
||||||
|
shortNames:
|
||||||
|
- sourcesidentifierns
|
||||||
|
---
|
||||||
|
apiVersion: apiextensions.k8s.io/v1
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
metadata :
|
||||||
|
name : threatpreventionpracticesns.openappsec.io
|
||||||
|
creationTimestamp: null
|
||||||
|
spec:
|
||||||
|
group: openappsec.io
|
||||||
|
versions:
|
||||||
|
- name: v1beta2
|
||||||
|
served: true
|
||||||
|
storage: true
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
spec:
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- webAttacks
|
||||||
|
- intrusionPrevention
|
||||||
|
- fileSecurity
|
||||||
|
- snortSignatures
|
||||||
|
properties:
|
||||||
|
appsecClassName:
|
||||||
|
type: string
|
||||||
|
practiceMode:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- inherited
|
||||||
|
- prevent-learn
|
||||||
|
- detect-learn
|
||||||
|
- prevent
|
||||||
|
- detect
|
||||||
|
- inactive
|
||||||
|
default: inherited
|
||||||
|
webAttacks:
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- overrideMode
|
||||||
|
properties:
|
||||||
|
overrideMode:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- prevent-learn
|
||||||
|
- detect-learn
|
||||||
|
- prevent
|
||||||
|
- detect
|
||||||
|
- inactive
|
||||||
|
- inherited
|
||||||
|
default: inactive
|
||||||
|
minimumConfidence:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- medium
|
||||||
|
- high
|
||||||
|
- critical
|
||||||
|
default: high
|
||||||
|
maxUrlSizeBytes:
|
||||||
|
type: integer
|
||||||
|
default: 32768
|
||||||
|
maxObjectDepth:
|
||||||
|
type: integer
|
||||||
|
default: 40
|
||||||
|
maxBodySizeKb:
|
||||||
|
type: integer
|
||||||
|
default: 1000000
|
||||||
|
maxHeaderSizeBytes:
|
||||||
|
type: integer
|
||||||
|
default: 102400
|
||||||
|
protections:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
csrfProtection:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- prevent-learn
|
||||||
|
- detect-learn
|
||||||
|
- prevent
|
||||||
|
- detect
|
||||||
|
- inactive
|
||||||
|
- inherited
|
||||||
|
default: inactive
|
||||||
|
errorDisclosure:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- prevent-learn
|
||||||
|
- detect-learn
|
||||||
|
- prevent
|
||||||
|
- detect
|
||||||
|
- inactive
|
||||||
|
- inherited
|
||||||
|
default: inactive
|
||||||
|
openRedirect:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- prevent-learn
|
||||||
|
- detect-learn
|
||||||
|
- prevent
|
||||||
|
- detect
|
||||||
|
- inactive
|
||||||
|
- inherited
|
||||||
|
default: inactive
|
||||||
|
nonValidHttpMethods:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
antiBot:
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- overrideMode
|
||||||
|
properties:
|
||||||
|
overrideMode:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- prevent-learn
|
||||||
|
- detect-learn
|
||||||
|
- prevent
|
||||||
|
- detect
|
||||||
|
- inactive
|
||||||
|
- inherited
|
||||||
|
default: inactive
|
||||||
|
injectedUris:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
uri:
|
||||||
|
type: string
|
||||||
|
validatedUris:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
uri:
|
||||||
|
type: string
|
||||||
|
snortSignatures:
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- overrideMode
|
||||||
|
properties:
|
||||||
|
overrideMode:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- prevent-learn
|
||||||
|
- detect-learn
|
||||||
|
- prevent
|
||||||
|
- detect
|
||||||
|
- inactive
|
||||||
|
- inherited
|
||||||
|
default: inactive
|
||||||
|
configmap:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
files:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
schemaValidation:
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- overrideMode
|
||||||
|
properties:
|
||||||
|
overrideMode:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- prevent-learn
|
||||||
|
- detect-learn
|
||||||
|
- prevent
|
||||||
|
- detect
|
||||||
|
- inactive
|
||||||
|
- inherited
|
||||||
|
default: inactive
|
||||||
|
enforcementLevel:
|
||||||
|
type: string
|
||||||
|
configmap:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
files:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
intrusionPrevention:
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- overrideMode
|
||||||
|
properties:
|
||||||
|
overrideMode:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- prevent-learn
|
||||||
|
- detect-learn
|
||||||
|
- prevent
|
||||||
|
- detect
|
||||||
|
- inactive
|
||||||
|
- inherited
|
||||||
|
default: inactive
|
||||||
|
maxPerformanceImpact:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- low
|
||||||
|
- medium
|
||||||
|
- high
|
||||||
|
default: medium
|
||||||
|
minSeverityLevel:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- low
|
||||||
|
- medium
|
||||||
|
- high
|
||||||
|
- critical
|
||||||
|
default: medium
|
||||||
|
minCveYear:
|
||||||
|
type: integer
|
||||||
|
default: 2016
|
||||||
|
highConfidenceEventAction:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- prevent
|
||||||
|
- detect
|
||||||
|
- inactive
|
||||||
|
- inherited
|
||||||
|
default: inherited
|
||||||
|
mediumConfidenceEventAction:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- prevent
|
||||||
|
- detect
|
||||||
|
- inactive
|
||||||
|
- inherited
|
||||||
|
default: inherited
|
||||||
|
lowConfidenceEventAction:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- prevent
|
||||||
|
- detect
|
||||||
|
- inactive
|
||||||
|
- inherited
|
||||||
|
default: detect
|
||||||
|
fileSecurity:
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- overrideMode
|
||||||
|
properties:
|
||||||
|
overrideMode:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- prevent-learn
|
||||||
|
- detect-learn
|
||||||
|
- prevent
|
||||||
|
- detect
|
||||||
|
- inactive
|
||||||
|
- inherited
|
||||||
|
default: inactive
|
||||||
|
minSeverityLevel:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- low
|
||||||
|
- medium
|
||||||
|
- high
|
||||||
|
- critical
|
||||||
|
default: medium
|
||||||
|
highConfidenceEventAction:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- prevent
|
||||||
|
- detect
|
||||||
|
- inactive
|
||||||
|
- inherited
|
||||||
|
default: inherited
|
||||||
|
mediumConfidenceEventAction:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- prevent
|
||||||
|
- detect
|
||||||
|
- inactive
|
||||||
|
- inherited
|
||||||
|
default: inherited
|
||||||
|
lowConfidenceEventAction:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- prevent
|
||||||
|
- detect
|
||||||
|
- inactive
|
||||||
|
- inherited
|
||||||
|
default: detect
|
||||||
|
archiveInspection:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
extractArchiveFiles:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
scanMaxFileSize:
|
||||||
|
type: integer
|
||||||
|
default: 10
|
||||||
|
scanMaxFileSizeUnit:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- bytes
|
||||||
|
- KB
|
||||||
|
- MB
|
||||||
|
- GB
|
||||||
|
default: MB
|
||||||
|
archivedFilesWithinArchivedFiles:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- prevent
|
||||||
|
- detect
|
||||||
|
- inactive
|
||||||
|
- inherited
|
||||||
|
default: inherited
|
||||||
|
archivedFilesWhereContentExtractionFailed:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- prevent
|
||||||
|
- detect
|
||||||
|
- inactive
|
||||||
|
- inherited
|
||||||
|
default: inherited
|
||||||
|
largeFileInspection:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
fileSizeLimit:
|
||||||
|
type: integer
|
||||||
|
default: 10
|
||||||
|
fileSizeLimitUnit:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- bytes
|
||||||
|
- KB
|
||||||
|
- MB
|
||||||
|
- GB
|
||||||
|
default: MB
|
||||||
|
filesExceedingSizeLimitAction:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- prevent
|
||||||
|
- detect
|
||||||
|
- inactive
|
||||||
|
- inherited
|
||||||
|
default: inherited
|
||||||
|
unnamedFilesAction:
|
||||||
|
type: string
|
||||||
|
enum:
|
||||||
|
- prevent
|
||||||
|
- detect
|
||||||
|
- inactive
|
||||||
|
- inherited
|
||||||
|
default: inherited
|
||||||
|
threatEmulationEnabled:
|
||||||
|
type: boolean
|
||||||
|
default: false
|
||||||
|
scope: Namespaced
|
||||||
|
names:
|
||||||
|
plural: threatpreventionpracticesns
|
||||||
|
singular: threatpreventionpracticens
|
||||||
|
kind: ThreatPreventionPracticeNS
|
||||||
|
shortNames:
|
||||||
|
- tppns
|
||||||
|
---
|
||||||
|
apiVersion: apiextensions.k8s.io/v1
|
||||||
|
kind: CustomResourceDefinition
|
||||||
|
metadata :
|
||||||
|
name : trustedsourcesns.openappsec.io
|
||||||
|
creationTimestamp: null
|
||||||
|
spec:
|
||||||
|
group: openappsec.io
|
||||||
|
versions:
|
||||||
|
- name: v1beta2
|
||||||
|
served: true
|
||||||
|
storage: true
|
||||||
|
schema:
|
||||||
|
openAPIV3Schema:
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
spec:
|
||||||
|
type: object
|
||||||
|
required:
|
||||||
|
- minNumOfSources
|
||||||
|
- sourcesIdentifiers
|
||||||
|
properties:
|
||||||
|
appsecClassName:
|
||||||
|
type: string
|
||||||
|
minNumOfSources:
|
||||||
|
type: integer
|
||||||
|
default: 3
|
||||||
|
sourcesIdentifiers:
|
||||||
|
type: array
|
||||||
|
items:
|
||||||
|
type: string
|
||||||
|
scope: Namespaced
|
||||||
|
names:
|
||||||
|
plural: trustedsourcesns
|
||||||
|
singular: trustedsourcens
|
||||||
|
kind: TrustedSourceNS
|
||||||
|
shortNames:
|
||||||
|
- trustedsourcens
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
# adjust with your own email below
|
# adjust with your own email below
|
||||||
- user_email=user@email.com
|
- user_email=user@email.com
|
||||||
- registered_server="APISIX Server"
|
- registered_server="APISIX"
|
||||||
- AGENT_TOKEN=<TOKEN>
|
- AGENT_TOKEN=<TOKEN>
|
||||||
volumes:
|
volumes:
|
||||||
- ./appsec-config:/etc/cp/conf
|
- ./appsec-config:/etc/cp/conf
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ services:
|
|||||||
- user_email=${APPSEC_USER_EMAIL}
|
- user_email=${APPSEC_USER_EMAIL}
|
||||||
- AGENT_TOKEN=${APPSEC_AGENT_TOKEN}
|
- AGENT_TOKEN=${APPSEC_AGENT_TOKEN}
|
||||||
- autoPolicyLoad=${APPSEC_AUTO_POLICY_LOAD}
|
- autoPolicyLoad=${APPSEC_AUTO_POLICY_LOAD}
|
||||||
- registered_server=APISIX Server
|
- registered_server=APISIX
|
||||||
ipc: shareable
|
ipc: shareable
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
volumes:
|
volumes:
|
||||||
@@ -128,4 +128,4 @@ services:
|
|||||||
# driver_opts:
|
# driver_opts:
|
||||||
# type: nfs
|
# type: nfs
|
||||||
# o: addr=fs-abcdef.efs.eu-west-1.amazonaws.com,rw,nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport
|
# o: addr=fs-abcdef.efs.eu-west-1.amazonaws.com,rw,nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport
|
||||||
# device: ":/"
|
# device: ":/"
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ services:
|
|||||||
- user_email=${APPSEC_USER_EMAIL}
|
- user_email=${APPSEC_USER_EMAIL}
|
||||||
- AGENT_TOKEN=${APPSEC_AGENT_TOKEN}
|
- AGENT_TOKEN=${APPSEC_AGENT_TOKEN}
|
||||||
- autoPolicyLoad=${APPSEC_AUTO_POLICY_LOAD}
|
- autoPolicyLoad=${APPSEC_AUTO_POLICY_LOAD}
|
||||||
- registered_server=Kong Server
|
- registered_server=Kong
|
||||||
ipc: shareable
|
ipc: shareable
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
volumes:
|
volumes:
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ services:
|
|||||||
- user_email=${APPSEC_USER_EMAIL}
|
- user_email=${APPSEC_USER_EMAIL}
|
||||||
- AGENT_TOKEN=${APPSEC_AGENT_TOKEN}
|
- AGENT_TOKEN=${APPSEC_AGENT_TOKEN}
|
||||||
- autoPolicyLoad=${APPSEC_AUTO_POLICY_LOAD}
|
- autoPolicyLoad=${APPSEC_AUTO_POLICY_LOAD}
|
||||||
- registered_server="NGINX Server"
|
- registered_server="NGINX"
|
||||||
ipc: shareable
|
ipc: shareable
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
volumes:
|
volumes:
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ services:
|
|||||||
- user_email=${APPSEC_USER_EMAIL}
|
- user_email=${APPSEC_USER_EMAIL}
|
||||||
- AGENT_TOKEN=${APPSEC_AGENT_TOKEN}
|
- AGENT_TOKEN=${APPSEC_AGENT_TOKEN}
|
||||||
- autoPolicyLoad=${APPSEC_AUTO_POLICY_LOAD}
|
- autoPolicyLoad=${APPSEC_AUTO_POLICY_LOAD}
|
||||||
- registered_server=SWAG Server
|
- registered_server=SWAG
|
||||||
ipc: shareable
|
ipc: shareable
|
||||||
volumes:
|
volumes:
|
||||||
- ${APPSEC_CONFIG}:/etc/cp/conf
|
- ${APPSEC_CONFIG}:/etc/cp/conf
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ services:
|
|||||||
- user_email=${USER_EMAIL}
|
- user_email=${USER_EMAIL}
|
||||||
# - AGENT_TOKEN=${APPSEC_AGENT_TOKEN}
|
# - AGENT_TOKEN=${APPSEC_AGENT_TOKEN}
|
||||||
- autoPolicyLoad=${APPSEC_AUTO_POLICY_LOAD}
|
- autoPolicyLoad=${APPSEC_AUTO_POLICY_LOAD}
|
||||||
- registered_server="NGINX Server"
|
- registered_server="NGINX"
|
||||||
ipc: shareable
|
ipc: shareable
|
||||||
volumes:
|
volumes:
|
||||||
- ${APPSEC_CONFIG}:/etc/cp/conf
|
- ${APPSEC_CONFIG}:/etc/cp/conf
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
- user_email=user@email.com # adjust with your own email
|
- user_email=user@email.com # adjust with your own email
|
||||||
- registered_server=SWAG Server
|
- registered_server="SWAG"
|
||||||
# if autoPolicyLoad is set to true, open-appsec will apply
|
# if autoPolicyLoad is set to true, open-appsec will apply
|
||||||
# changes in local_policy.yaml automatically
|
# changes in local_policy.yaml automatically
|
||||||
- autoPolicyLoad=true
|
- autoPolicyLoad=true
|
||||||
|
|||||||
9
examples/juiceshop/apisix/apisix.yaml
Normal file
9
examples/juiceshop/apisix/apisix.yaml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
routes:
|
||||||
|
-
|
||||||
|
uri: /
|
||||||
|
upstream:
|
||||||
|
nodes:
|
||||||
|
"juiceshop-backend:3000": 1
|
||||||
|
type: roundrobin
|
||||||
|
|
||||||
|
#END
|
||||||
56
examples/juiceshop/envoy/envoy.yaml
Normal file
56
examples/juiceshop/envoy/envoy.yaml
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
static_resources:
|
||||||
|
listeners:
|
||||||
|
- name: listener_0
|
||||||
|
address:
|
||||||
|
socket_address:
|
||||||
|
address: 0.0.0.0
|
||||||
|
port_value: 80
|
||||||
|
filter_chains:
|
||||||
|
- filters:
|
||||||
|
- name: envoy.filters.network.http_connection_manager
|
||||||
|
typed_config:
|
||||||
|
"@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager
|
||||||
|
stat_prefix: ingress_http
|
||||||
|
http_filters:
|
||||||
|
## The following 10 lines are required to load the envoy attachment filter for open-appsec
|
||||||
|
- name: envoy.filters.http.golang
|
||||||
|
typed_config:
|
||||||
|
"@type": type.googleapis.com/envoy.extensions.filters.http.golang.v3alpha.Config
|
||||||
|
library_id: cp_nano_filter
|
||||||
|
library_path: "/usr/lib/libenvoy_attachment.so"
|
||||||
|
plugin_name: cp_nano_filter
|
||||||
|
plugin_config:
|
||||||
|
"@type": type.googleapis.com/xds.type.v3.TypedStruct
|
||||||
|
value:
|
||||||
|
prefix_localreply_body: "Configured local reply from go"
|
||||||
|
- name: envoy.filters.http.router
|
||||||
|
typed_config:
|
||||||
|
"@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router
|
||||||
|
|
||||||
|
##
|
||||||
|
## The following lines allow you to deploy routing of ingress traffic to the optional juice-shop example container available in the open-appsec docker-compose.yaml file.
|
||||||
|
##
|
||||||
|
route_config:
|
||||||
|
name: local_route
|
||||||
|
virtual_hosts:
|
||||||
|
- name: local_service
|
||||||
|
domains: ["*"]
|
||||||
|
routes:
|
||||||
|
- match:
|
||||||
|
prefix: "/"
|
||||||
|
route:
|
||||||
|
cluster: juiceshop
|
||||||
|
|
||||||
|
clusters:
|
||||||
|
- name: juiceshop
|
||||||
|
type: STRICT_DNS
|
||||||
|
lb_policy: ROUND_ROBIN
|
||||||
|
load_assignment:
|
||||||
|
cluster_name: juiceshop
|
||||||
|
endpoints:
|
||||||
|
- lb_endpoints:
|
||||||
|
- endpoint:
|
||||||
|
address:
|
||||||
|
socket_address:
|
||||||
|
address: juiceshop-backend
|
||||||
|
port_value: 3000
|
||||||
9
examples/juiceshop/kong/kong.yml
Normal file
9
examples/juiceshop/kong/kong.yml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
_format_version: "3.0"
|
||||||
|
|
||||||
|
services:
|
||||||
|
- name: juiceshop-service
|
||||||
|
url: http://juiceshop-backend:3000
|
||||||
|
routes:
|
||||||
|
- name: juiceshop-route
|
||||||
|
paths:
|
||||||
|
- /
|
||||||
84
examples/juiceshop/swag/default.conf
Normal file
84
examples/juiceshop/swag/default.conf
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
## Version 2024/07/16 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/site-confs/default.conf.sample
|
||||||
|
|
||||||
|
# redirect all traffic to https
|
||||||
|
server {
|
||||||
|
listen 80 default_server;
|
||||||
|
listen [::]:80 default_server;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
return 301 https://$host$request_uri;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# main server block
|
||||||
|
server {
|
||||||
|
listen 443 ssl default_server;
|
||||||
|
listen [::]:443 ssl default_server;
|
||||||
|
|
||||||
|
server_name _;
|
||||||
|
|
||||||
|
include /config/nginx/ssl.conf;
|
||||||
|
|
||||||
|
# root /config/www;
|
||||||
|
# index index.html index.htm index.php;
|
||||||
|
|
||||||
|
# enable subfolder method reverse proxy confs
|
||||||
|
include /config/nginx/proxy-confs/*.subfolder.conf;
|
||||||
|
|
||||||
|
# enable for ldap auth (requires ldap-location.conf in the location block)
|
||||||
|
#include /config/nginx/ldap-server.conf;
|
||||||
|
|
||||||
|
# enable for Authelia (requires authelia-location.conf in the location block)
|
||||||
|
#include /config/nginx/authelia-server.conf;
|
||||||
|
|
||||||
|
# enable for Authentik (requires authentik-location.conf in the location block)
|
||||||
|
#include /config/nginx/authentik-server.conf;
|
||||||
|
|
||||||
|
#location / {
|
||||||
|
# enable for basic auth
|
||||||
|
#auth_basic "Restricted";
|
||||||
|
#auth_basic_user_file /config/nginx/.htpasswd;
|
||||||
|
|
||||||
|
# enable for ldap auth (requires ldap-server.conf in the server block)
|
||||||
|
#include /config/nginx/ldap-location.conf;
|
||||||
|
|
||||||
|
# enable for Authelia (requires authelia-server.conf in the server block)
|
||||||
|
#include /config/nginx/authelia-location.conf;
|
||||||
|
|
||||||
|
# enable for Authentik (requires authentik-server.conf in the server block)
|
||||||
|
#include /config/nginx/authentik-location.conf;
|
||||||
|
|
||||||
|
# try_files $uri $uri/ /index.html /index.htm /index.php$is_args$args;
|
||||||
|
#}
|
||||||
|
|
||||||
|
location ~ ^(.+\.php)(.*)$ {
|
||||||
|
# enable the next two lines for http auth
|
||||||
|
#auth_basic "Restricted";
|
||||||
|
#auth_basic_user_file /config/nginx/.htpasswd;
|
||||||
|
|
||||||
|
# enable for ldap auth (requires ldap-server.conf in the server block)
|
||||||
|
#include /config/nginx/ldap-location.conf;
|
||||||
|
|
||||||
|
# enable for Authelia (requires authelia-server.conf in the server block)
|
||||||
|
#include /config/nginx/authelia-location.conf;
|
||||||
|
|
||||||
|
# enable for Authentik (requires authentik-server.conf in the server block)
|
||||||
|
#include /config/nginx/authentik-location.conf;
|
||||||
|
|
||||||
|
fastcgi_split_path_info ^(.+\.php)(.*)$;
|
||||||
|
if (!-f $document_root$fastcgi_script_name) { return 404; }
|
||||||
|
fastcgi_pass 127.0.0.1:9000;
|
||||||
|
fastcgi_index index.php;
|
||||||
|
include /etc/nginx/fastcgi_params;
|
||||||
|
}
|
||||||
|
|
||||||
|
# deny access to .htaccess/.htpasswd files
|
||||||
|
location ~ /\.ht {
|
||||||
|
deny all;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# enable subdomain method reverse proxy confs
|
||||||
|
include /config/nginx/proxy-confs/*.subdomain.conf;
|
||||||
|
# enable proxy cache for auth
|
||||||
|
proxy_cache_path cache/ keys_zone=auth_cache:10m;
|
||||||
22
examples/juiceshop/swag/juiceshop.subfolder.conf
Normal file
22
examples/juiceshop/swag/juiceshop.subfolder.conf
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
location / {
|
||||||
|
# enable the next two lines for http auth
|
||||||
|
#auth_basic "Restricted";
|
||||||
|
#auth_basic_user_file /config/nginx/.htpasswd;
|
||||||
|
|
||||||
|
# enable for ldap auth (requires ldap-server.conf in the server block)
|
||||||
|
#include /config/nginx/ldap-location.conf;
|
||||||
|
|
||||||
|
# enable for Authelia (requires authelia-server.conf in the server block)
|
||||||
|
#include /config/nginx/authelia-location.conf;
|
||||||
|
|
||||||
|
# enable for Authentik (requires authentik-server.conf in the server block)
|
||||||
|
#include /config/nginx/authentik-location.conf;
|
||||||
|
|
||||||
|
include /config/nginx/proxy.conf;
|
||||||
|
include /config/nginx/resolver.conf;
|
||||||
|
set $upstream_app juiceshop-backend;
|
||||||
|
set $upstream_port 3000;
|
||||||
|
set $upstream_proto http;
|
||||||
|
proxy_pass $upstream_proto://$upstream_app:$upstream_port;
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user