sdc-build-wp 4.1.0 → 4.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/composer.json +2 -3
- package/composer.lock +3 -313
- package/index.js +38 -21
- package/lib/blocks.js +8 -6
- package/lib/style.js +17 -0
- package/package.json +1 -1
- package/vendor/composer/autoload_classmap.php +0 -37
- package/vendor/composer/autoload_psr4.php +0 -1
- package/vendor/composer/autoload_real.php +2 -0
- package/vendor/composer/autoload_static.php +0 -53
- package/vendor/composer/installed.json +1 -329
- package/vendor/composer/installed.php +3 -39
- package/vendor/composer/platform_check.php +26 -0
- package/lib/bustCache.js +0 -14
- package/vendor/dealerdirect/phpcodesniffer-composer-installer/LICENSE.md +0 -22
- package/vendor/dealerdirect/phpcodesniffer-composer-installer/README.md +0 -285
- package/vendor/dealerdirect/phpcodesniffer-composer-installer/composer.json +0 -71
- package/vendor/dealerdirect/phpcodesniffer-composer-installer/src/Plugin.php +0 -637
- package/vendor/phpcsstandards/phpcsextra/CHANGELOG.md +0 -590
- package/vendor/phpcsstandards/phpcsextra/LICENSE +0 -165
- package/vendor/phpcsstandards/phpcsextra/Modernize/Docs/FunctionCalls/DirnameStandard.xml +0 -40
- package/vendor/phpcsstandards/phpcsextra/Modernize/Sniffs/FunctionCalls/DirnameSniff.php +0 -382
- package/vendor/phpcsstandards/phpcsextra/Modernize/ruleset.xml +0 -5
- package/vendor/phpcsstandards/phpcsextra/NormalizedArrays/Docs/Arrays/ArrayBraceSpacingStandard.xml +0 -94
- package/vendor/phpcsstandards/phpcsextra/NormalizedArrays/Docs/Arrays/CommaAfterLastStandard.xml +0 -43
- package/vendor/phpcsstandards/phpcsextra/NormalizedArrays/Sniffs/Arrays/ArrayBraceSpacingSniff.php +0 -305
- package/vendor/phpcsstandards/phpcsextra/NormalizedArrays/Sniffs/Arrays/CommaAfterLastSniff.php +0 -226
- package/vendor/phpcsstandards/phpcsextra/NormalizedArrays/ruleset.xml +0 -5
- package/vendor/phpcsstandards/phpcsextra/README.md +0 -573
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Arrays/DisallowShortArraySyntaxStandard.xml +0 -27
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Arrays/DuplicateArrayKeyStandard.xml +0 -44
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Arrays/MixedArrayKeyTypesStandard.xml +0 -40
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Arrays/MixedKeyedUnkeyedArrayStandard.xml +0 -31
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Classes/DisallowAnonClassParenthesesStandard.xml +0 -24
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Classes/DisallowFinalClassStandard.xml +0 -25
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Classes/ModifierKeywordOrderStandard.xml +0 -27
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Classes/RequireAnonClassParenthesesStandard.xml +0 -23
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Classes/RequireFinalClassStandard.xml +0 -25
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/CodeAnalysis/ConstructorDestructorReturnStandard.xml +0 -64
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/CodeAnalysis/ForeachUniqueAssignmentStandard.xml +0 -26
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/CodeAnalysis/NoDoubleNegativeStandard.xml +0 -27
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/CodeAnalysis/NoEchoSprintfStandard.xml +0 -25
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/CodeAnalysis/StaticInFinalClassStandard.xml +0 -43
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Constants/LowercaseClassResolutionKeywordStandard.xml +0 -23
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Constants/ModifierKeywordOrderStandard.xml +0 -30
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Constants/UppercaseMagicConstantsStandard.xml +0 -25
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/ControlStructures/DisallowAlternativeSyntaxStandard.xml +0 -35
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/ControlStructures/DisallowLonelyIfStandard.xml +0 -49
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/ControlStructures/IfElseDeclarationStandard.xml +0 -37
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Files/SeparateFunctionsFromOOStandard.xml +0 -45
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/FunctionDeclarations/NoLongClosuresStandard.xml +0 -42
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/FunctionDeclarations/RequireFinalMethodsInTraitsStandard.xml +0 -33
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Lists/DisallowLongListSyntaxStandard.xml +0 -23
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Lists/DisallowShortListSyntaxStandard.xml +0 -23
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Namespaces/DisallowCurlyBraceSyntaxStandard.xml +0 -27
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Namespaces/DisallowDeclarationWithoutNameStandard.xml +0 -25
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Namespaces/EnforceCurlyBraceSyntaxStandard.xml +0 -27
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Namespaces/OneDeclarationPerFileStandard.xml +0 -27
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/NamingConventions/NoReservedKeywordParameterNamesStandard.xml +0 -23
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/OOStructures/AlphabeticExtendsImplementsStandard.xml +0 -27
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Operators/ConcatPositionStandard.xml +0 -31
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Operators/DisallowLogicalAndOrStandard.xml +0 -30
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Operators/DisallowShortTernaryStandard.xml +0 -26
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Operators/DisallowStandalonePostIncrementDecrementStandard.xml +0 -44
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Operators/StrictComparisonsStandard.xml +0 -29
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/Operators/TypeSeparatorSpacingStandard.xml +0 -33
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/PHP/LowercasePHPTagStandard.xml +0 -25
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/PHP/OneStatementInShortEchoTagStandard.xml +0 -41
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/UseStatements/DisallowMixedGroupUseStandard.xml +0 -39
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/UseStatements/DisallowUseClassStandard.xml +0 -25
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/UseStatements/DisallowUseConstStandard.xml +0 -25
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/UseStatements/DisallowUseFunctionStandard.xml +0 -25
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/UseStatements/KeywordSpacingStandard.xml +0 -29
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/UseStatements/LowercaseFunctionConstStandard.xml +0 -25
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/UseStatements/NoLeadingBackslashStandard.xml +0 -23
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/UseStatements/NoUselessAliasesStandard.xml +0 -30
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/WhiteSpace/AnonClassKeywordSpacingStandard.xml +0 -31
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/WhiteSpace/CommaSpacingStandard.xml +0 -94
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/WhiteSpace/DisallowInlineTabsStandard.xml +0 -25
- package/vendor/phpcsstandards/phpcsextra/Universal/Docs/WhiteSpace/PrecisionAlignmentStandard.xml +0 -29
- package/vendor/phpcsstandards/phpcsextra/Universal/Helpers/DummyTokenizer.php +0 -60
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Arrays/DisallowShortArraySyntaxSniff.php +0 -89
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Arrays/DuplicateArrayKeySniff.php +0 -297
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Arrays/MixedArrayKeyTypesSniff.php +0 -174
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Arrays/MixedKeyedUnkeyedArraySniff.php +0 -134
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Classes/DisallowAnonClassParenthesesSniff.php +0 -112
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Classes/DisallowFinalClassSniff.php +0 -116
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Classes/ModifierKeywordOrderSniff.php +0 -188
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Classes/RequireAnonClassParenthesesSniff.php +0 -81
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Classes/RequireFinalClassSniff.php +0 -102
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/CodeAnalysis/ConstructorDestructorReturnSniff.php +0 -211
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/CodeAnalysis/ForeachUniqueAssignmentSniff.php +0 -153
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/CodeAnalysis/NoDoubleNegativeSniff.php +0 -269
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/CodeAnalysis/NoEchoSprintfSniff.php +0 -131
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/CodeAnalysis/StaticInFinalClassSniff.php +0 -216
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Constants/LowercaseClassResolutionKeywordSniff.php +0 -106
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Constants/ModifierKeywordOrderSniff.php +0 -199
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Constants/UppercaseMagicConstantsSniff.php +0 -89
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/ControlStructures/DisallowAlternativeSyntaxSniff.php +0 -216
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/ControlStructures/DisallowLonelyIfSniff.php +0 -348
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/ControlStructures/IfElseDeclarationSniff.php +0 -164
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Files/SeparateFunctionsFromOOSniff.php +0 -190
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/FunctionDeclarations/NoLongClosuresSniff.php +0 -233
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/FunctionDeclarations/RequireFinalMethodsInTraitsSniff.php +0 -120
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Lists/DisallowLongListSyntaxSniff.php +0 -71
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Lists/DisallowShortListSyntaxSniff.php +0 -86
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Namespaces/DisallowCurlyBraceSyntaxSniff.php +0 -81
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Namespaces/DisallowDeclarationWithoutNameSniff.php +0 -80
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Namespaces/EnforceCurlyBraceSyntaxSniff.php +0 -81
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Namespaces/OneDeclarationPerFileSniff.php +0 -96
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/NamingConventions/NoReservedKeywordParameterNamesSniff.php +0 -190
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/OOStructures/AlphabeticExtendsImplementsSniff.php +0 -275
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Operators/ConcatPositionSniff.php +0 -204
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Operators/DisallowLogicalAndOrSniff.php +0 -112
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Operators/DisallowShortTernarySniff.php +0 -76
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Operators/DisallowStandalonePostIncrementDecrementSniff.php +0 -197
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Operators/StrictComparisonsSniff.php +0 -116
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/Operators/TypeSeparatorSpacingSniff.php +0 -85
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/PHP/LowercasePHPTagSniff.php +0 -87
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/PHP/OneStatementInShortEchoTagSniff.php +0 -101
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/UseStatements/DisallowMixedGroupUseSniff.php +0 -248
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/UseStatements/DisallowUseClassSniff.php +0 -211
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/UseStatements/DisallowUseConstSniff.php +0 -211
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/UseStatements/DisallowUseFunctionSniff.php +0 -211
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/UseStatements/KeywordSpacingSniff.php +0 -207
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/UseStatements/LowercaseFunctionConstSniff.php +0 -156
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/UseStatements/NoLeadingBackslashSniff.php +0 -170
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/UseStatements/NoUselessAliasesSniff.php +0 -155
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/WhiteSpace/AnonClassKeywordSpacingSniff.php +0 -79
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/WhiteSpace/CommaSpacingSniff.php +0 -408
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/WhiteSpace/DisallowInlineTabsSniff.php +0 -173
- package/vendor/phpcsstandards/phpcsextra/Universal/Sniffs/WhiteSpace/PrecisionAlignmentSniff.php +0 -445
- package/vendor/phpcsstandards/phpcsextra/Universal/ruleset.xml +0 -5
- package/vendor/phpcsstandards/phpcsextra/composer.json +0 -69
- package/vendor/phpcsstandards/phpcsutils/.phpdoc.xml.dist +0 -36
- package/vendor/phpcsstandards/phpcsutils/CHANGELOG.md +0 -1106
- package/vendor/phpcsstandards/phpcsutils/LICENSE +0 -165
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/AbstractSniffs/AbstractArrayDeclarationSniff.php +0 -551
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/BackCompat/BCFile.php +0 -781
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/BackCompat/BCTokens.php +0 -123
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/BackCompat/Helper.php +0 -202
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Exceptions/InvalidTokenArray.php +0 -44
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Exceptions/TestFileNotFound.php +0 -47
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Exceptions/TestMarkerNotFound.php +0 -43
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Exceptions/TestTargetNotFound.php +0 -50
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Fixers/SpacesFixer.php +0 -246
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Internal/Cache.php +0 -218
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Internal/IsShortArrayOrList.php +0 -687
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Internal/IsShortArrayOrListWithCache.php +0 -269
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Internal/NoFileCache.php +0 -164
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Internal/StableCollections.php +0 -75
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/TestUtils/UtilityMethodTestCase.php +0 -459
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Tokens/Collections.php +0 -837
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Tokens/TokenHelper.php +0 -55
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/Arrays.php +0 -227
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/Conditions.php +0 -156
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/Context.php +0 -232
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/ControlStructures.php +0 -276
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/FunctionDeclarations.php +0 -828
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/GetTokensAsString.php +0 -262
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/Lists.php +0 -359
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/MessageHelper.php +0 -145
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/Namespaces.php +0 -389
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/NamingConventions.php +0 -116
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/Numbers.php +0 -322
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/ObjectDeclarations.php +0 -359
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/Operators.php +0 -252
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/Orthography.php +0 -120
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/Parentheses.php +0 -419
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/PassedParameters.php +0 -510
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/Scopes.php +0 -143
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/TextStrings.php +0 -331
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/UseStatements.php +0 -432
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/Utils/Variables.php +0 -333
- package/vendor/phpcsstandards/phpcsutils/PHPCSUtils/ruleset.xml +0 -4
- package/vendor/phpcsstandards/phpcsutils/README.md +0 -297
- package/vendor/phpcsstandards/phpcsutils/composer.json +0 -92
- package/vendor/phpcsstandards/phpcsutils/phpcsutils-autoload.php +0 -68
- package/vendor/wp-coding-standards/wpcs/CHANGELOG.md +0 -1654
- package/vendor/wp-coding-standards/wpcs/LICENSE +0 -21
- package/vendor/wp-coding-standards/wpcs/README.md +0 -261
- package/vendor/wp-coding-standards/wpcs/WordPress/AbstractArrayAssignmentRestrictionsSniff.php +0 -261
- package/vendor/wp-coding-standards/wpcs/WordPress/AbstractClassRestrictionsSniff.php +0 -257
- package/vendor/wp-coding-standards/wpcs/WordPress/AbstractFunctionParameterSniff.php +0 -111
- package/vendor/wp-coding-standards/wpcs/WordPress/AbstractFunctionRestrictionsSniff.php +0 -358
- package/vendor/wp-coding-standards/wpcs/WordPress/Docs/Arrays/ArrayIndentationStandard.xml +0 -116
- package/vendor/wp-coding-standards/wpcs/WordPress/Docs/Arrays/ArrayKeySpacingRestrictionsStandard.xml +0 -31
- package/vendor/wp-coding-standards/wpcs/WordPress/Docs/Arrays/MultipleStatementAlignmentStandard.xml +0 -50
- package/vendor/wp-coding-standards/wpcs/WordPress/Docs/CodeAnalysis/EscapedNotTranslatedStandard.xml +0 -24
- package/vendor/wp-coding-standards/wpcs/WordPress/Docs/DateTime/CurrentTimeTimestampStandard.xml +0 -35
- package/vendor/wp-coding-standards/wpcs/WordPress/Docs/DateTime/RestrictedFunctionsStandard.xml +0 -54
- package/vendor/wp-coding-standards/wpcs/WordPress/Docs/NamingConventions/PrefixAllGlobalsStandard.xml +0 -119
- package/vendor/wp-coding-standards/wpcs/WordPress/Docs/NamingConventions/ValidHookNameStandard.xml +0 -35
- package/vendor/wp-coding-standards/wpcs/WordPress/Docs/NamingConventions/ValidPostTypeSlugStandard.xml +0 -121
- package/vendor/wp-coding-standards/wpcs/WordPress/Docs/PHP/IniSetStandard.xml +0 -40
- package/vendor/wp-coding-standards/wpcs/WordPress/Docs/PHP/StrictInArrayStandard.xml +0 -53
- package/vendor/wp-coding-standards/wpcs/WordPress/Docs/PHP/YodaConditionsStandard.xml +0 -27
- package/vendor/wp-coding-standards/wpcs/WordPress/Docs/Security/SafeRedirectStandard.xml +0 -23
- package/vendor/wp-coding-standards/wpcs/WordPress/Docs/WP/CapabilitiesStandard.xml +0 -69
- package/vendor/wp-coding-standards/wpcs/WordPress/Docs/WP/CapitalPDangitStandard.xml +0 -43
- package/vendor/wp-coding-standards/wpcs/WordPress/Docs/WP/ClassNameCaseStandard.xml +0 -23
- package/vendor/wp-coding-standards/wpcs/WordPress/Docs/WP/CronIntervalStandard.xml +0 -45
- package/vendor/wp-coding-standards/wpcs/WordPress/Docs/WP/DeprecatedClassesStandard.xml +0 -23
- package/vendor/wp-coding-standards/wpcs/WordPress/Docs/WP/DeprecatedFunctionsStandard.xml +0 -23
- package/vendor/wp-coding-standards/wpcs/WordPress/Docs/WP/DeprecatedParameterValuesStandard.xml +0 -23
- package/vendor/wp-coding-standards/wpcs/WordPress/Docs/WP/DeprecatedParametersStandard.xml +0 -40
- package/vendor/wp-coding-standards/wpcs/WordPress/Docs/WP/EnqueuedResourceParametersStandard.xml +0 -92
- package/vendor/wp-coding-standards/wpcs/WordPress/Docs/WP/EnqueuedResourcesStandard.xml +0 -57
- package/vendor/wp-coding-standards/wpcs/WordPress/Docs/WP/PostsPerPageStandard.xml +0 -73
- package/vendor/wp-coding-standards/wpcs/WordPress/Docs/WhiteSpace/CastStructureSpacingStandard.xml +0 -27
- package/vendor/wp-coding-standards/wpcs/WordPress/Docs/WhiteSpace/ControlStructureSpacingStandard.xml +0 -150
- package/vendor/wp-coding-standards/wpcs/WordPress/Docs/WhiteSpace/ObjectOperatorSpacingStandard.xml +0 -19
- package/vendor/wp-coding-standards/wpcs/WordPress/Docs/WhiteSpace/OperatorSpacingStandard.xml +0 -61
- package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/ArrayWalkingFunctionsHelper.php +0 -108
- package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/ConstantsHelper.php +0 -135
- package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/ContextHelper.php +0 -394
- package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/DeprecationHelper.php +0 -84
- package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/EscapingFunctionsTrait.php +0 -256
- package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/FormattingFunctionsHelper.php +0 -60
- package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/IsUnitTestTrait.php +0 -238
- package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/ListHelper.php +0 -101
- package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/MinimumWPVersionTrait.php +0 -159
- package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/PrintingFunctionsTrait.php +0 -122
- package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/RulesetPropertyHelper.php +0 -73
- package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/SanitizationHelperTrait.php +0 -418
- package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/SnakeCaseHelper.php +0 -60
- package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/UnslashingFunctionsHelper.php +0 -59
- package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/ValidationHelper.php +0 -349
- package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/VariableHelper.php +0 -262
- package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/WPDBTrait.php +0 -115
- package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/WPGlobalVariablesHelper.php +0 -312
- package/vendor/wp-coding-standards/wpcs/WordPress/Helpers/WPHookHelper.php +0 -113
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniff.php +0 -72
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/Arrays/ArrayDeclarationSpacingSniff.php +0 -252
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/Arrays/ArrayIndentationSniff.php +0 -550
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/Arrays/ArrayKeySpacingRestrictionsSniff.php +0 -174
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/Arrays/MultipleStatementAlignmentSniff.php +0 -583
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/CodeAnalysis/AssignmentInTernaryConditionSniff.php +0 -173
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/CodeAnalysis/EscapedNotTranslatedSniff.php +0 -89
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/DB/DirectDatabaseQuerySniff.php +0 -301
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/DB/PreparedSQLPlaceholdersSniff.php +0 -761
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/DB/PreparedSQLSniff.php +0 -242
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/DB/RestrictedClassesSniff.php +0 -57
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/DB/RestrictedFunctionsSniff.php +0 -63
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/DB/SlowDBQuerySniff.php +0 -58
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/DateTime/CurrentTimeTimestampSniff.php +0 -168
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/DateTime/RestrictedFunctionsSniff.php +0 -59
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/Files/FileNameSniff.php +0 -313
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/NamingConventions/PrefixAllGlobalsSniff.php +0 -1297
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/NamingConventions/ValidFunctionNameSniff.php +0 -188
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/NamingConventions/ValidHookNameSniff.php +0 -277
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/NamingConventions/ValidPostTypeSlugSniff.php +0 -230
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/NamingConventions/ValidVariableNameSniff.php +0 -289
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/PHP/DevelopmentFunctionsSniff.php +0 -63
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/PHP/DiscouragedPHPFunctionsSniff.php +0 -100
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/PHP/DontExtractSniff.php +0 -52
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/PHP/IniSetSniff.php +0 -193
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/PHP/NoSilencedErrorsSniff.php +0 -245
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/PHP/POSIXFunctionsSniff.php +0 -73
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/PHP/PregQuoteDelimiterSniff.php +0 -70
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/PHP/RestrictedPHPFunctionsSniff.php +0 -45
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/PHP/StrictInArraySniff.php +0 -122
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/PHP/TypeCastsSniff.php +0 -90
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/PHP/YodaConditionsSniff.php +0 -124
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/Security/EscapeOutputSniff.php +0 -903
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/Security/NonceVerificationSniff.php +0 -422
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/Security/PluginMenuSlugSniff.php +0 -126
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/Security/SafeRedirectSniff.php +0 -45
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/Security/ValidatedSanitizedInputSniff.php +0 -244
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/Utils/I18nTextDomainFixerSniff.php +0 -862
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WP/AlternativeFunctionsSniff.php +0 -371
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WP/CapabilitiesSniff.php +0 -478
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WP/CapitalPDangitSniff.php +0 -315
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WP/ClassNameCaseSniff.php +0 -897
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WP/CronIntervalSniff.php +0 -321
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WP/DeprecatedClassesSniff.php +0 -152
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WP/DeprecatedFunctionsSniff.php +0 -1708
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WP/DeprecatedParameterValuesSniff.php +0 -291
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WP/DeprecatedParametersSniff.php +0 -509
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WP/DiscouragedConstantsSniff.php +0 -160
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WP/DiscouragedFunctionsSniff.php +0 -54
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WP/EnqueuedResourceParametersSniff.php +0 -241
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WP/EnqueuedResourcesSniff.php +0 -108
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WP/GlobalVariablesOverrideSniff.php +0 -436
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WP/I18nSniff.php +0 -977
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WP/PostsPerPageSniff.php +0 -102
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WhiteSpace/CastStructureSpacingSniff.php +0 -59
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WhiteSpace/ControlStructureSpacingSniff.php +0 -486
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WhiteSpace/ObjectOperatorSpacingSniff.php +0 -63
- package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/WhiteSpace/OperatorSpacingSniff.php +0 -60
- package/vendor/wp-coding-standards/wpcs/WordPress/ruleset.xml +0 -13
- package/vendor/wp-coding-standards/wpcs/WordPress-Core/ruleset.xml +0 -948
- package/vendor/wp-coding-standards/wpcs/WordPress-Docs/ruleset.xml +0 -109
- package/vendor/wp-coding-standards/wpcs/WordPress-Extra/ruleset.xml +0 -199
- package/vendor/wp-coding-standards/wpcs/composer.json +0 -88
- package/vendor/wp-coding-standards/wpcs/phpcs.xml.dist.sample +0 -153
package/vendor/wp-coding-standards/wpcs/WordPress/Sniffs/Security/NonceVerificationSniff.php
DELETED
|
@@ -1,422 +0,0 @@
|
|
|
1
|
-
<?php
|
|
2
|
-
/**
|
|
3
|
-
* WordPress Coding Standard.
|
|
4
|
-
*
|
|
5
|
-
* @package WPCS\WordPressCodingStandards
|
|
6
|
-
* @link https://github.com/WordPress/WordPress-Coding-Standards
|
|
7
|
-
* @license https://opensource.org/licenses/MIT MIT
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
namespace WordPressCS\WordPress\Sniffs\Security;
|
|
11
|
-
|
|
12
|
-
use PHPCSUtils\Tokens\Collections;
|
|
13
|
-
use PHPCSUtils\Utils\Conditions;
|
|
14
|
-
use PHPCSUtils\Utils\Context;
|
|
15
|
-
use PHPCSUtils\Utils\Lists;
|
|
16
|
-
use PHPCSUtils\Utils\MessageHelper;
|
|
17
|
-
use PHPCSUtils\Utils\Scopes;
|
|
18
|
-
use WordPressCS\WordPress\Helpers\ContextHelper;
|
|
19
|
-
use WordPressCS\WordPress\Helpers\RulesetPropertyHelper;
|
|
20
|
-
use WordPressCS\WordPress\Helpers\SanitizationHelperTrait;
|
|
21
|
-
use WordPressCS\WordPress\Helpers\UnslashingFunctionsHelper;
|
|
22
|
-
use WordPressCS\WordPress\Helpers\VariableHelper;
|
|
23
|
-
use WordPressCS\WordPress\Sniff;
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Checks that nonce verification accompanies form processing.
|
|
27
|
-
*
|
|
28
|
-
* @link https://developer.wordpress.org/plugins/security/nonces/ Nonces on Plugin Developer Handbook
|
|
29
|
-
*
|
|
30
|
-
* @since 0.5.0
|
|
31
|
-
* @since 0.13.0 Class name changed: this class is now namespaced.
|
|
32
|
-
* @since 1.0.0 This sniff has been moved from the `CSRF` category to the `Security` category.
|
|
33
|
-
* @since 3.0.0 This sniff has received significant updates to its logic and structure.
|
|
34
|
-
*
|
|
35
|
-
* @uses \WordPressCS\WordPress\Helpers\SanitizationHelperTrait::$customSanitizingFunctions
|
|
36
|
-
* @uses \WordPressCS\WordPress\Helpers\SanitizationHelperTrait::$customUnslashingSanitizingFunctions
|
|
37
|
-
*/
|
|
38
|
-
class NonceVerificationSniff extends Sniff {
|
|
39
|
-
|
|
40
|
-
use SanitizationHelperTrait;
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Superglobals to notify about when not accompanied by an nonce check.
|
|
44
|
-
*
|
|
45
|
-
* A value of `true` results in an error. A value of `false` in a warning.
|
|
46
|
-
*
|
|
47
|
-
* @since 0.12.0
|
|
48
|
-
*
|
|
49
|
-
* @var array
|
|
50
|
-
*/
|
|
51
|
-
protected $superglobals = array(
|
|
52
|
-
'$_POST' => true,
|
|
53
|
-
'$_FILES' => true,
|
|
54
|
-
'$_GET' => false,
|
|
55
|
-
'$_REQUEST' => false,
|
|
56
|
-
);
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Custom list of functions which verify nonces.
|
|
60
|
-
*
|
|
61
|
-
* @since 0.5.0
|
|
62
|
-
*
|
|
63
|
-
* @var string[]
|
|
64
|
-
*/
|
|
65
|
-
public $customNonceVerificationFunctions = array();
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* List of the functions which verify nonces.
|
|
69
|
-
*
|
|
70
|
-
* @since 0.5.0
|
|
71
|
-
* @since 0.11.0 Changed from public static to protected non-static.
|
|
72
|
-
* @since 3.0.0 - Moved from the generic `Sniff` class to this class.
|
|
73
|
-
* - Visibility changed from `protected` to `private.
|
|
74
|
-
*
|
|
75
|
-
* @var array
|
|
76
|
-
*/
|
|
77
|
-
private $nonceVerificationFunctions = array(
|
|
78
|
-
'wp_verify_nonce' => true,
|
|
79
|
-
'check_admin_referer' => true,
|
|
80
|
-
'check_ajax_referer' => true,
|
|
81
|
-
);
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
* Cache of previously added custom functions.
|
|
85
|
-
*
|
|
86
|
-
* Prevents having to do the same merges over and over again.
|
|
87
|
-
*
|
|
88
|
-
* @since 0.5.0
|
|
89
|
-
* @since 0.11.0 - Changed from public static to protected non-static.
|
|
90
|
-
* - Changed the format from simple bool to array.
|
|
91
|
-
* @since 3.0.0 - Property rename from `$addedCustomFunctions` to `$addedCustomNonceFunctions`.
|
|
92
|
-
* - Visibility changed from `protected` to `private.
|
|
93
|
-
* - Format changed from a multi-dimensional array to a single-dimensional array.
|
|
94
|
-
*
|
|
95
|
-
* @var array
|
|
96
|
-
*/
|
|
97
|
-
private $addedCustomNonceFunctions = array();
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* Information on the all scopes that were checked to find a nonce verification in a particular file.
|
|
101
|
-
*
|
|
102
|
-
* The array will be in the following format:
|
|
103
|
-
* ```
|
|
104
|
-
* array(
|
|
105
|
-
* 'file' => (string) The name of the file.
|
|
106
|
-
* 'cache' => (array) array(
|
|
107
|
-
* # => array( The key is the token pointer to the "start" position.
|
|
108
|
-
* 'end' => (int) The token pointer to the "end" position.
|
|
109
|
-
* 'nonce' => (int|bool) The token pointer where n nonce check
|
|
110
|
-
* was found, or false if none was found.
|
|
111
|
-
* )
|
|
112
|
-
* )
|
|
113
|
-
* )
|
|
114
|
-
* ```
|
|
115
|
-
*
|
|
116
|
-
* @since 3.0.0
|
|
117
|
-
*
|
|
118
|
-
* @var array<string, mixed>
|
|
119
|
-
*/
|
|
120
|
-
private $cached_results;
|
|
121
|
-
|
|
122
|
-
/**
|
|
123
|
-
* Returns an array of tokens this test wants to listen for.
|
|
124
|
-
*
|
|
125
|
-
* @return array
|
|
126
|
-
*/
|
|
127
|
-
public function register() {
|
|
128
|
-
$targets = array( \T_VARIABLE => \T_VARIABLE );
|
|
129
|
-
$targets += Collections::listOpenTokensBC(); // We need to skip over lists.
|
|
130
|
-
|
|
131
|
-
return $targets;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
* Processes this test, when one of its tokens is encountered.
|
|
136
|
-
*
|
|
137
|
-
* @param int $stackPtr The position of the current token in the stack.
|
|
138
|
-
*
|
|
139
|
-
* @return int|void Integer stack pointer to skip forward or void to continue
|
|
140
|
-
* normal file processing.
|
|
141
|
-
*/
|
|
142
|
-
public function process_token( $stackPtr ) {
|
|
143
|
-
// Skip over lists as whatever is in those will always be assignments.
|
|
144
|
-
if ( isset( Collections::listOpenTokensBC()[ $this->tokens[ $stackPtr ]['code'] ] ) ) {
|
|
145
|
-
$open_close = Lists::getOpenClose( $this->phpcsFile, $stackPtr );
|
|
146
|
-
$skip_to = $stackPtr;
|
|
147
|
-
if ( false !== $open_close ) {
|
|
148
|
-
$skip_to = $open_close['closer'];
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
return $skip_to;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
if ( ! isset( $this->superglobals[ $this->tokens[ $stackPtr ]['content'] ] ) ) {
|
|
155
|
-
return;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
if ( Scopes::isOOProperty( $this->phpcsFile, $stackPtr ) ) {
|
|
159
|
-
// Property with the same name as a superglobal. Not our target.
|
|
160
|
-
return;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
// Determine the cache keys for this item.
|
|
164
|
-
$cache_keys = array(
|
|
165
|
-
'file' => $this->phpcsFile->getFilename(),
|
|
166
|
-
'start' => 0,
|
|
167
|
-
'end' => $stackPtr,
|
|
168
|
-
);
|
|
169
|
-
|
|
170
|
-
// If we're in a function, only look inside of it.
|
|
171
|
-
// This doesn't take arrow functions into account as those are "open".
|
|
172
|
-
$functionPtr = Conditions::getLastCondition( $this->phpcsFile, $stackPtr, array( \T_FUNCTION, \T_CLOSURE ) );
|
|
173
|
-
if ( false !== $functionPtr ) {
|
|
174
|
-
$cache_keys['start'] = $this->tokens[ $functionPtr ]['scope_opener'];
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
$this->mergeFunctionLists();
|
|
178
|
-
|
|
179
|
-
$needs_nonce = $this->needs_nonce_check( $stackPtr, $cache_keys );
|
|
180
|
-
if ( false === $needs_nonce ) {
|
|
181
|
-
return;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
if ( $this->has_nonce_check( $stackPtr, $cache_keys, ( 'after' === $needs_nonce ) ) ) {
|
|
185
|
-
return;
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
// If we're still here, no nonce-verification function was found.
|
|
189
|
-
$error_code = 'Missing';
|
|
190
|
-
if ( false === $this->superglobals[ $this->tokens[ $stackPtr ]['content'] ] ) {
|
|
191
|
-
$error_code = 'Recommended';
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
MessageHelper::addMessage(
|
|
195
|
-
$this->phpcsFile,
|
|
196
|
-
'Processing form data without nonce verification.',
|
|
197
|
-
$stackPtr,
|
|
198
|
-
$this->superglobals[ $this->tokens[ $stackPtr ]['content'] ],
|
|
199
|
-
$error_code
|
|
200
|
-
);
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
/**
|
|
204
|
-
* Determine whether or not a nonce check is needed for the current superglobal.
|
|
205
|
-
*
|
|
206
|
-
* @since 3.0.0
|
|
207
|
-
*
|
|
208
|
-
* @param int $stackPtr The position of the current token in the stack of tokens.
|
|
209
|
-
* @param array $cache_keys The keys for the applicable cache (to potentially set).
|
|
210
|
-
*
|
|
211
|
-
* @return string|false String "before" or "after" if a nonce check is needed.
|
|
212
|
-
* FALSE when no nonce check is needed.
|
|
213
|
-
*/
|
|
214
|
-
protected function needs_nonce_check( $stackPtr, array $cache_keys ) {
|
|
215
|
-
$in_nonce_check = ContextHelper::is_in_function_call( $this->phpcsFile, $stackPtr, $this->nonceVerificationFunctions );
|
|
216
|
-
if ( false !== $in_nonce_check ) {
|
|
217
|
-
// This *is* the nonce check, so bow out, but do store to cache.
|
|
218
|
-
// @todo Change to use arg unpacking once PHP < 5.6 has been dropped.
|
|
219
|
-
$this->set_cache( $cache_keys['file'], $cache_keys['start'], $cache_keys['end'], $in_nonce_check );
|
|
220
|
-
return false;
|
|
221
|
-
}
|
|
222
|
-
|
|
223
|
-
if ( Context::inUnset( $this->phpcsFile, $stackPtr ) ) {
|
|
224
|
-
// Variable is only being unset, no nonce check needed.
|
|
225
|
-
return false;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
if ( VariableHelper::is_assignment( $this->phpcsFile, $stackPtr, false ) ) {
|
|
229
|
-
// Overwriting the value of a superglobal.
|
|
230
|
-
return false;
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
$needs_nonce = 'before';
|
|
234
|
-
if ( ContextHelper::is_in_isset_or_empty( $this->phpcsFile, $stackPtr )
|
|
235
|
-
|| ContextHelper::is_in_type_test( $this->phpcsFile, $stackPtr )
|
|
236
|
-
|| VariableHelper::is_comparison( $this->phpcsFile, $stackPtr )
|
|
237
|
-
|| VariableHelper::is_assignment( $this->phpcsFile, $stackPtr, true )
|
|
238
|
-
|| ContextHelper::is_in_array_comparison( $this->phpcsFile, $stackPtr )
|
|
239
|
-
|| ContextHelper::is_in_function_call( $this->phpcsFile, $stackPtr, UnslashingFunctionsHelper::get_functions() ) !== false
|
|
240
|
-
|| $this->is_only_sanitized( $this->phpcsFile, $stackPtr )
|
|
241
|
-
) {
|
|
242
|
-
$needs_nonce = 'after';
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
return $needs_nonce;
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
/**
|
|
249
|
-
* Check if this token has an associated nonce check.
|
|
250
|
-
*
|
|
251
|
-
* @since 0.5.0
|
|
252
|
-
* @since 3.0.0 - Moved from the generic `Sniff` class to this class.
|
|
253
|
-
* - Visibility changed from `protected` to `private.
|
|
254
|
-
* - New `$cache_keys` parameter.
|
|
255
|
-
* - New `$allow_nonce_after` parameter.
|
|
256
|
-
*
|
|
257
|
-
* @param int $stackPtr The position of the current token in the stack of tokens.
|
|
258
|
-
* @param array $cache_keys The keys for the applicable cache.
|
|
259
|
-
* @param bool $allow_nonce_after Whether the nonce check _must_ be before the $stackPtr or
|
|
260
|
-
* is allowed _after_ the $stackPtr.
|
|
261
|
-
*
|
|
262
|
-
* @return bool
|
|
263
|
-
*/
|
|
264
|
-
private function has_nonce_check( $stackPtr, array $cache_keys, $allow_nonce_after = false ) {
|
|
265
|
-
$start = $cache_keys['start'];
|
|
266
|
-
$end = $cache_keys['end'];
|
|
267
|
-
|
|
268
|
-
// We allow for certain actions, such as an isset() check to come before the nonce check.
|
|
269
|
-
// If this superglobal is inside such a check, look for the nonce after it as well,
|
|
270
|
-
// all the way to the end of the scope.
|
|
271
|
-
if ( true === $allow_nonce_after ) {
|
|
272
|
-
$end = ( 0 === $start ) ? $this->phpcsFile->numTokens : $this->tokens[ $start ]['scope_closer'];
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
// Check against the cache.
|
|
276
|
-
$current_cache = $this->get_cache( $cache_keys['file'], $start );
|
|
277
|
-
if ( false !== $current_cache['nonce'] ) {
|
|
278
|
-
// If we have already found a nonce check in this scope, we just
|
|
279
|
-
// need to check whether it comes before this token. It is OK if the
|
|
280
|
-
// check is after the token though, if this was only an isset() check.
|
|
281
|
-
return ( true === $allow_nonce_after || $current_cache['nonce'] < $stackPtr );
|
|
282
|
-
} elseif ( $end <= $current_cache['end'] ) {
|
|
283
|
-
// If not, we can still go ahead and return false if we've already
|
|
284
|
-
// checked to the end of the search area.
|
|
285
|
-
return false;
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
$search_start = $start;
|
|
289
|
-
if ( $current_cache['end'] > $start ) {
|
|
290
|
-
// We haven't checked this far yet, but we can still save work by
|
|
291
|
-
// skipping over the part we've already checked.
|
|
292
|
-
$search_start = $this->cached_results['cache'][ $start ]['end'];
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
// Loop through the tokens looking for nonce verification functions.
|
|
296
|
-
for ( $i = $search_start; $i < $end; $i++ ) {
|
|
297
|
-
// Skip over nested closed scope constructs.
|
|
298
|
-
if ( isset( Collections::closedScopes()[ $this->tokens[ $i ]['code'] ] )
|
|
299
|
-
|| \T_FN === $this->tokens[ $i ]['code']
|
|
300
|
-
) {
|
|
301
|
-
if ( isset( $this->tokens[ $i ]['scope_closer'] ) ) {
|
|
302
|
-
$i = $this->tokens[ $i ]['scope_closer'];
|
|
303
|
-
}
|
|
304
|
-
continue;
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
// If this isn't a function name, skip it.
|
|
308
|
-
if ( \T_STRING !== $this->tokens[ $i ]['code'] ) {
|
|
309
|
-
continue;
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
// If this is one of the nonce verification functions, we can bail out.
|
|
313
|
-
if ( isset( $this->nonceVerificationFunctions[ $this->tokens[ $i ]['content'] ] ) ) {
|
|
314
|
-
/*
|
|
315
|
-
* Now, make sure it is a call to a global function.
|
|
316
|
-
*/
|
|
317
|
-
if ( ContextHelper::has_object_operator_before( $this->phpcsFile, $i ) === true ) {
|
|
318
|
-
continue;
|
|
319
|
-
}
|
|
320
|
-
|
|
321
|
-
if ( ContextHelper::is_token_namespaced( $this->phpcsFile, $i ) === true ) {
|
|
322
|
-
continue;
|
|
323
|
-
}
|
|
324
|
-
|
|
325
|
-
$this->set_cache( $cache_keys['file'], $start, $end, $i );
|
|
326
|
-
return true;
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
// We're still here, so no luck.
|
|
331
|
-
$this->set_cache( $cache_keys['file'], $start, $end, false );
|
|
332
|
-
|
|
333
|
-
return false;
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
/**
|
|
337
|
-
* Helper function to retrieve results from the cache.
|
|
338
|
-
*
|
|
339
|
-
* @since 3.0.0
|
|
340
|
-
*
|
|
341
|
-
* @param string $filename The name of the current file.
|
|
342
|
-
* @param int $start The stack pointer searches started from.
|
|
343
|
-
*
|
|
344
|
-
* @return array<string, mixed>
|
|
345
|
-
*/
|
|
346
|
-
private function get_cache( $filename, $start ) {
|
|
347
|
-
if ( is_array( $this->cached_results )
|
|
348
|
-
&& $filename === $this->cached_results['file']
|
|
349
|
-
&& isset( $this->cached_results['cache'][ $start ] )
|
|
350
|
-
) {
|
|
351
|
-
return $this->cached_results['cache'][ $start ];
|
|
352
|
-
}
|
|
353
|
-
|
|
354
|
-
return array(
|
|
355
|
-
'end' => 0,
|
|
356
|
-
'nonce' => false,
|
|
357
|
-
);
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
/**
|
|
361
|
-
* Helper function to store results to the cache.
|
|
362
|
-
*
|
|
363
|
-
* @since 3.0.0
|
|
364
|
-
*
|
|
365
|
-
* @param string $filename The name of the current file.
|
|
366
|
-
* @param int $start The stack pointer searches started from.
|
|
367
|
-
* @param int $end The stack pointer searched stopped at.
|
|
368
|
-
* @param int|bool $nonce Stack pointer to the nonce verification function call or false if none was found.
|
|
369
|
-
*
|
|
370
|
-
* @return void
|
|
371
|
-
*/
|
|
372
|
-
private function set_cache( $filename, $start, $end, $nonce ) {
|
|
373
|
-
if ( is_array( $this->cached_results ) === false
|
|
374
|
-
|| $filename !== $this->cached_results['file']
|
|
375
|
-
) {
|
|
376
|
-
$this->cached_results = array(
|
|
377
|
-
'file' => $filename,
|
|
378
|
-
'cache' => array(
|
|
379
|
-
$start => array(
|
|
380
|
-
'end' => $end,
|
|
381
|
-
'nonce' => $nonce,
|
|
382
|
-
),
|
|
383
|
-
),
|
|
384
|
-
);
|
|
385
|
-
return;
|
|
386
|
-
}
|
|
387
|
-
|
|
388
|
-
// Okay, so we know the current cache is for the current file. Check if we've seen this start pointer before.
|
|
389
|
-
if ( isset( $this->cached_results['cache'][ $start ] ) === false ) {
|
|
390
|
-
$this->cached_results['cache'][ $start ] = array(
|
|
391
|
-
'end' => $end,
|
|
392
|
-
'nonce' => $nonce,
|
|
393
|
-
);
|
|
394
|
-
return;
|
|
395
|
-
}
|
|
396
|
-
|
|
397
|
-
// Update existing entry.
|
|
398
|
-
if ( $end > $this->cached_results['cache'][ $start ]['end'] ) {
|
|
399
|
-
$this->cached_results['cache'][ $start ]['end'] = $end;
|
|
400
|
-
}
|
|
401
|
-
|
|
402
|
-
$this->cached_results['cache'][ $start ]['nonce'] = $nonce;
|
|
403
|
-
}
|
|
404
|
-
|
|
405
|
-
/**
|
|
406
|
-
* Merge custom functions provided via a custom ruleset with the defaults, if we haven't already.
|
|
407
|
-
*
|
|
408
|
-
* @since 0.11.0 Split out from the `process()` method.
|
|
409
|
-
*
|
|
410
|
-
* @return void
|
|
411
|
-
*/
|
|
412
|
-
protected function mergeFunctionLists() {
|
|
413
|
-
if ( $this->customNonceVerificationFunctions !== $this->addedCustomNonceFunctions ) {
|
|
414
|
-
$this->nonceVerificationFunctions = RulesetPropertyHelper::merge_custom_array(
|
|
415
|
-
$this->customNonceVerificationFunctions,
|
|
416
|
-
$this->nonceVerificationFunctions
|
|
417
|
-
);
|
|
418
|
-
|
|
419
|
-
$this->addedCustomNonceFunctions = $this->customNonceVerificationFunctions;
|
|
420
|
-
}
|
|
421
|
-
}
|
|
422
|
-
}
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
<?php
|
|
2
|
-
/**
|
|
3
|
-
* WordPress Coding Standard.
|
|
4
|
-
*
|
|
5
|
-
* @package WPCS\WordPressCodingStandards
|
|
6
|
-
* @link https://github.com/WordPress/WordPress-Coding-Standards
|
|
7
|
-
* @license https://opensource.org/licenses/MIT MIT
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
namespace WordPressCS\WordPress\Sniffs\Security;
|
|
11
|
-
|
|
12
|
-
use PHPCSUtils\Utils\PassedParameters;
|
|
13
|
-
use WordPressCS\WordPress\AbstractFunctionParameterSniff;
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Warn about __FILE__ for page registration.
|
|
17
|
-
*
|
|
18
|
-
* @link https://vip.wordpress.com/documentation/vip-go/code-review-blockers-warnings-notices/#using-__file__-for-page-registration
|
|
19
|
-
*
|
|
20
|
-
* @since 0.3.0
|
|
21
|
-
* @since 0.11.0 Refactored to extend the new WordPressCS native
|
|
22
|
-
* `AbstractFunctionParameterSniff` class.
|
|
23
|
-
* @since 0.13.0 Class name changed: this class is now namespaced.
|
|
24
|
-
* @since 1.0.0 This sniff has been moved from the `VIP` category to the `Security` category.
|
|
25
|
-
*/
|
|
26
|
-
final class PluginMenuSlugSniff extends AbstractFunctionParameterSniff {
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* The group name for this group of functions.
|
|
30
|
-
*
|
|
31
|
-
* @since 0.11.0
|
|
32
|
-
*
|
|
33
|
-
* @var string
|
|
34
|
-
*/
|
|
35
|
-
protected $group_name = 'add_menu_functions';
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Functions which can be used to add pages to the WP Admin menu.
|
|
39
|
-
*
|
|
40
|
-
* @since 0.3.0
|
|
41
|
-
* @since 0.11.0 Renamed from $add_menu_functions to $target_functions
|
|
42
|
-
* and changed visibility to protected.
|
|
43
|
-
* @since 3.0.0 The format of the value has changed from a numerically indexed
|
|
44
|
-
* array containing parameter positions to an array with the parameter
|
|
45
|
-
* position as the index and the parameter name as value.
|
|
46
|
-
*
|
|
47
|
-
* @var array<string, array<int, string|array>> Key is the name of the functions being targetted.
|
|
48
|
-
* Value is an array with parameter positions as the
|
|
49
|
-
* keys and parameter names as the values
|
|
50
|
-
*/
|
|
51
|
-
protected $target_functions = array(
|
|
52
|
-
'add_comments_page' => array(
|
|
53
|
-
4 => 'menu_slug',
|
|
54
|
-
),
|
|
55
|
-
'add_dashboard_page' => array(
|
|
56
|
-
4 => 'menu_slug',
|
|
57
|
-
),
|
|
58
|
-
'add_links_page' => array(
|
|
59
|
-
4 => 'menu_slug',
|
|
60
|
-
),
|
|
61
|
-
'add_management_page' => array(
|
|
62
|
-
4 => 'menu_slug',
|
|
63
|
-
),
|
|
64
|
-
'add_media_page' => array(
|
|
65
|
-
4 => 'menu_slug',
|
|
66
|
-
),
|
|
67
|
-
'add_menu_page' => array(
|
|
68
|
-
4 => 'menu_slug',
|
|
69
|
-
),
|
|
70
|
-
'add_object_page' => array(
|
|
71
|
-
4 => 'menu_slug',
|
|
72
|
-
),
|
|
73
|
-
'add_options_page' => array(
|
|
74
|
-
4 => 'menu_slug',
|
|
75
|
-
),
|
|
76
|
-
'add_pages_page' => array(
|
|
77
|
-
4 => 'menu_slug',
|
|
78
|
-
),
|
|
79
|
-
'add_plugins_page' => array(
|
|
80
|
-
4 => 'menu_slug',
|
|
81
|
-
),
|
|
82
|
-
'add_posts_page' => array(
|
|
83
|
-
4 => 'menu_slug',
|
|
84
|
-
),
|
|
85
|
-
'add_submenu_page' => array(
|
|
86
|
-
1 => 'parent_slug',
|
|
87
|
-
5 => 'menu_slug',
|
|
88
|
-
),
|
|
89
|
-
'add_theme_page' => array(
|
|
90
|
-
4 => 'menu_slug',
|
|
91
|
-
),
|
|
92
|
-
'add_users_page' => array(
|
|
93
|
-
4 => 'menu_slug',
|
|
94
|
-
),
|
|
95
|
-
'add_utility_page' => array(
|
|
96
|
-
4 => 'menu_slug',
|
|
97
|
-
),
|
|
98
|
-
);
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* Process the parameters of a matched function.
|
|
102
|
-
*
|
|
103
|
-
* @since 0.11.0
|
|
104
|
-
*
|
|
105
|
-
* @param int $stackPtr The position of the current token in the stack.
|
|
106
|
-
* @param string $group_name The name of the group which was matched.
|
|
107
|
-
* @param string $matched_content The token content (function name) which was matched
|
|
108
|
-
* in lowercase.
|
|
109
|
-
* @param array $parameters Array with information about the parameters.
|
|
110
|
-
*
|
|
111
|
-
* @return void
|
|
112
|
-
*/
|
|
113
|
-
public function process_parameters( $stackPtr, $group_name, $matched_content, $parameters ) {
|
|
114
|
-
foreach ( $this->target_functions[ $matched_content ] as $position => $param_name ) {
|
|
115
|
-
$found_param = PassedParameters::getParameterFromStack( $parameters, $position, $param_name );
|
|
116
|
-
if ( false === $found_param ) {
|
|
117
|
-
continue;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
$file_constant = $this->phpcsFile->findNext( \T_FILE, $found_param['start'], ( $found_param['end'] + 1 ) );
|
|
121
|
-
if ( false !== $file_constant ) {
|
|
122
|
-
$this->phpcsFile->addWarning( 'Using __FILE__ for menu slugs risks exposing filesystem structure.', $file_constant, 'Using__FILE__' );
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
<?php
|
|
2
|
-
/**
|
|
3
|
-
* WordPress Coding Standard.
|
|
4
|
-
*
|
|
5
|
-
* @package WPCS\WordPressCodingStandards
|
|
6
|
-
* @link https://github.com/WordPress/WordPress-Coding-Standards
|
|
7
|
-
* @license https://opensource.org/licenses/MIT MIT
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
namespace WordPressCS\WordPress\Sniffs\Security;
|
|
11
|
-
|
|
12
|
-
use WordPressCS\WordPress\AbstractFunctionRestrictionsSniff;
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Encourages use of wp_safe_redirect() to avoid open redirect vulnerabilities.
|
|
16
|
-
*
|
|
17
|
-
* @since 1.0.0
|
|
18
|
-
*/
|
|
19
|
-
final class SafeRedirectSniff extends AbstractFunctionRestrictionsSniff {
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Groups of functions to restrict.
|
|
23
|
-
*
|
|
24
|
-
* Example: groups => array(
|
|
25
|
-
* 'lambda' => array(
|
|
26
|
-
* 'type' => 'error' | 'warning',
|
|
27
|
-
* 'message' => 'Use anonymous functions instead please!',
|
|
28
|
-
* 'functions' => array( 'file_get_contents', 'create_function' ),
|
|
29
|
-
* )
|
|
30
|
-
* )
|
|
31
|
-
*
|
|
32
|
-
* @return array
|
|
33
|
-
*/
|
|
34
|
-
public function getGroups() {
|
|
35
|
-
return array(
|
|
36
|
-
'wp_redirect' => array(
|
|
37
|
-
'type' => 'warning',
|
|
38
|
-
'message' => '%s() found. Using wp_safe_redirect(), along with the "allowed_redirect_hosts" filter if needed, can help avoid any chances of malicious redirects within code. It is also important to remember to call exit() after a redirect so that no other unwanted code is executed.',
|
|
39
|
-
'functions' => array(
|
|
40
|
-
'wp_redirect',
|
|
41
|
-
),
|
|
42
|
-
),
|
|
43
|
-
);
|
|
44
|
-
}
|
|
45
|
-
}
|