Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
projectdiscovery
GitHub Repository: projectdiscovery/nuclei
Path: blob/dev/pkg/protocols/common/variables/doc.go
2073 views
1
package variables
2
3
// There are total 5 sources of variables
4
// 1. VariablesMap - Variables defined in the template (available at Request.options.Variables in protocols)
5
// 2. PayloadsMap - Payloads defined in the template (available at Request.generator in protocols)
6
// 3. OptionsMap - Variables passed using CLI Options (+ Env) (available at generators.BuildPayloadFromOptions)
7
// 4. DynamicMap - Variables Obtained by extracting data from templates (available at Request.ExecuteWithResults + merged with previous internalEvent)
8
// 5. ProtocolMap - Variables generated by Evaluation Request / Responses of xyz protocol (available in Request.Make)
9
// 6. ConstantsMap - Constants defined in the template (available at Request.options.Constants in protocols)
10
11
// As we can tell , all variables sources are not linear i.e why they need to re-evaluated
12
// consider example
13
// variables:
14
// - name: "username@{{Host}}"
15
16
// Linear Sources (once obtained no need to re-evaluate)
17
// simply put they don't contain references to other variables
18
// 1. OptionsMap
19
// 2. DynamicMap
20
// 3. ProtocolMap
21
22
// Non-Linear Sources (need to re-evaluate)
23
// 1. VariablesMap
24
// 2. PayloadsMap
25
// Every time Linear Sources are updated , Non-Linear Sources need to be re-evaluated
26
27
// Constants (no need to re-evaluate, should contain only scalars)
28
29