Changeset 33517cc for node_modules/minimatch/README.md
- Timestamp:
- 09/19/26 10:30:30 (10 days ago)
- Branches:
- finki-main, main
- Children:
- 06ebe74
- Parents:
- 62b2964
- File:
-
- 1 edited
-
node_modules/minimatch/README.md (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
node_modules/minimatch/README.md
r62b2964 r33517cc 7 7 It works by converting glob expressions into JavaScript `RegExp` 8 8 objects. 9 10 ## Important Security Consideration! 11 12 > [!WARNING] 13 > This library uses JavaScript regular expressions. Please read 14 > the following warning carefully, and be thoughtful about what 15 > you provide to this library in production systems. 16 17 _Any_ library in JavaScript that deals with matching string 18 patterns using regular expressions will be subject to 19 [ReDoS](https://owasp.org/www-community/attacks/Regular_expression_Denial_of_Service_-_ReDoS) 20 if the pattern is generated using untrusted input. 21 22 Efforts have been made to mitigate risk as much as is feasible in 23 such a library, providing maximum recursion depths and so forth, 24 but these measures can only ultimately protect against accidents, 25 not malice. A dedicated attacker can _always_ find patterns that 26 cannot be defended against by a bash-compatible glob pattern 27 matching system that uses JavaScript regular expressions. 28 29 To be extremely clear: 30 31 > [!WARNING] 32 > **If you create a system where you take user input, and use 33 > that input as the source of a Regular Expression pattern, in 34 > this or any extant glob matcher in JavaScript, you will be 35 > pwned.** 36 37 A future version of this library _may_ use a different matching 38 algorithm which does not exhibit backtracking problems. If and 39 when that happens, it will likely be a sweeping change, and those 40 improvements will **not** be backported to legacy versions. 41 42 In the near term, it is not reasonable to continue to play 43 whack-a-mole with security advisories, and so any future ReDoS 44 reports will be considered "working as intended", and resolved 45 entirely by this warning. 9 46 10 47 ## Usage … … 397 434 Defaults to the value of `process.platform`. 398 435 436 ### maxGlobstarRecursion 437 438 Max number of non-adjacent `**` patterns to recursively walk 439 down. 440 441 The default of `200` is almost certainly high enough for most 442 purposes, and can handle absurdly excessive patterns. 443 444 If the limit is exceeded (which would require very excessively 445 long patterns and paths containing lots of `**` patterns!), then 446 it is treated as non-matching, even if the path would normally 447 match the pattern provided. 448 449 That is, this is an intentional false negative, deemed an 450 acceptable break in correctness for security and performance. 451 452 ### maxExtglobRecursion 453 454 Max depth to traverse for nested extglobs like `*(a|b|c)` 455 456 Default is 2, which is quite low, but any higher value swiftly 457 results in punishing performance impacts. Note that this is _not_ 458 relevant when the globstar types can be safely coalesced into a 459 single set. 460 461 For example, `*(a|@(b|c)|d)` would be flattened into 462 `*(a|b|c|d)`. Thus, many common extglobs will retain good 463 performance and never hit this limit, even if they are 464 excessively deep and complicated. 465 466 If the limit is hit, then the extglob characters are simply not 467 parsed, and the pattern effectively switches into `noextglob: 468 true` mode for the contents of that nested sub-pattern. This will 469 typically _not_ result in a match, but is considered a valid 470 trade-off for security and performance. 471 399 472 ## Comparisons to other fnmatch/glob implementations 400 473
Note:
See TracChangeset
for help on using the changeset viewer.
