o
    Á¿ip  ã                   @   s   d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ de	e ded	ed
ede
defdd„Zded	ed
ede
def
dd„Zded	ed
ede
def
dd„Zded	ed
ede
def
dd„Zded	ed
ede
def
dd„Zded	ed
ede
def
dd„ZdS )a  Module for IAST sanitizers that apply security marks to function return values.

Sanitizers are functions that clean/escape their inputs to prevent security issues.
If a sanitizer returns a value, we mark that value as secure for specific vulnerability types.
é    )ÚAny)ÚCallable)ÚSequence)ÚVulnerabilityType©Úadd_secure_markÚvulnerability_typesÚwrappedÚinstanceÚargsÚkwargsÚreturnc                 C   s   ||i |¤Ž}t || ƒ |S )ziCreate a sanitizer function wrapper that marks return values as secure for a specific vulnerability type.r   )r   r	   r
   r   r   Úresult© r   ú`/home/ubuntu/.local/lib/python3.10/site-packages/ddtrace/appsec/_iast/secure_marks/sanitizers.pyÚcreate_sanitizer   s   
r   c                 C   ó   t tjg| |||ƒS )aR  Sanitizer for werkzeug.utils.secure_filename that marks filenames as safe from path traversal.

    Args:
        wrapped: The original secure_filename function
        instance: The instance (None for module functions)
        args: Positional arguments
        kwargs: Keyword arguments

    Returns:
        The sanitized filename
    )r   r   ÚPATH_TRAVERSAL©r	   r
   r   r   r   r   r   Úpath_traversal_sanitizer   ó   r   c                 C   r   )a0  Sanitizer for HTML escaping functions that mark output as safe from XSS.

    Args:
        wrapped: The original quote function
        instance: The instance (None for module functions)
        args: Positional arguments
        kwargs: Keyword arguments

    Returns:
        The sanitized string
    )r   r   ÚXSSr   r   r   r   Úxss_sanitizer*   r   r   c                 C   r   )a8  Sanitizer for SQL quoting functions that mark output as safe from SQL injection.

    Args:
        wrapped: The original quote function
        instance: The instance (None for module functions)
        args: Positional arguments
        kwargs: Keyword arguments

    Returns:
        The quoted SQL value
    )r   r   ÚSQL_INJECTIONr   r   r   r   Úsqli_sanitizer9   r   r   c                 C   r   )aJ  Sanitizer for shell command quoting functions that mark output as safe from command injection.

    Args:
        wrapped: The original quote function
        instance: The instance (None for module functions)
        args: Positional arguments
        kwargs: Keyword arguments

    Returns:
        The quoted shell command
    )r   r   ÚCOMMAND_INJECTIONr   r   r   r   Úcmdi_sanitizerH   r   r   c                 C   r   )N)r   r   ÚHEADER_INJECTIONr   r   r   r   Úheader_injection_sanitizerW   s   r   N)Ú__doc__Útypingr   r   r   Ú$ddtrace.appsec._iast._taint_trackingr   Ú&ddtrace.appsec._iast.secure_marks.baser   ÚlistÚdictr   r   r   r   r   r   r   r   r   r   Ú<module>   s0    ÿÿÿÿÿ
þ"