/ rules / D-FILES-02.py
D-FILES-02.py
 1  """
 2  Rule: D-FILES-02 - safe file paths
 3  Type: semantic | Output: binary
 4  Description: Reject on path traversal, absolute paths, windows drive paths, or NUL bytes.
 5  Spec reference: 8.1.1
 6  """
 7  
 8  # TODO: Implement safe file paths
 9  # TODO: Implement safe file paths
10  # Output: {"passed": bool}
11    # Output: {"passed": bool}
12  # Steps:
13    # Steps:
14  # 2. For each file, get 'path' field
15      # 2. For each file, get 'path' field
16  # 4. Check for absolute paths: starts with / or C:\ etc
17      # 4. Check for absolute paths: starts with / or C:\ etc
18  # 6. Return {'passed': False} if any unsafe pattern
19      # 6. Return {'passed': False} if any unsafe pattern
20  # Edge cases:
21    # Edge cases:
22  # - Mixed slashes
23      # - Mixed slashes
24  # - Unicode path tricks
25      # - Unicode path tricks
26  # Dependencies: None (stdlib)
27    # Dependencies: None (stdlib)
28  # Priority: High (security - path traversal prevention)
29    # Priority: High (security - path traversal prevention)
30  from simple_types import BinaryRuleResult, Nip35Kind2003Event
31  
32  
33  def main(entry: Nip35Kind2003Event) -> BinaryRuleResult:
34      return {"passed": True}