Coverage for graphqler / fuzzer / engine / detectors / xss_injection / xss_injection_materializer.py: 59%

17 statements  

« prev     ^ index     » next       coverage.py v7.13.4, created at 2026-03-18 23:20 -0400

1from ...materializers.injection_materializer import InjectionMaterializer 

2from graphqler.utils.api import API 

3from ...materializers.getter import Getter 

4 

5from typing import override 

6 

7 

8# The main class that's being used 

9class XSSInjectionMaterializer(InjectionMaterializer): 

10 def __init__(self, api: API, fail_on_hard_dependency_not_met: bool = False, max_depth: int = 20): 

11 super().__init__(api, fail_on_hard_dependency_not_met) 

12 self.api = api 

13 self.fail_on_hard_dependency_not_met = fail_on_hard_dependency_not_met 

14 self.max_depth = max_depth 

15 self.getter = XSSInjectionGetter() 

16 

17 

18# Override the getters class to add custom getters for SQL injection 

19class XSSInjectionGetter(Getter): 

20 def __init__(self): 

21 super().__init__() 

22 

23 @override 

24 def get_random_string(self, input_name: str) -> str: 

25 return '"<script>alert(1)</script>"'