HOME


Mini Shell 1.0
DIR: /usr/lib/python3/dist-packages/twisted/web/test/__pycache__/
Upload File :
Current File : //usr/lib/python3/dist-packages/twisted/web/test/__pycache__/injectionhelpers.cpython-312.pyc
�

Ϫ�f����dZddlZeedd��eeej
d��z
Zeedd��ZGd�d�ZGd�d	�Z	y)
zF
Helpers for URI and method injection tests.

@see: U{CVE-2019-12387}
�N��ascii�c�(�eZdZdZd�Zd�Zd�Zd�Zy)�MethodInjectionTestsMixina9
    A mixin that runs HTTP method injection tests.  Define
    L{MethodInjectionTestsMixin.attemptRequestWithMaliciousMethod} in
    a L{twisted.trial.unittest.SynchronousTestCase} subclass to test
    how HTTP client code behaves when presented with malicious HTTP
    methods.

    @see: U{CVE-2019-12387}
    c��t��)z�
        Attempt to send a request with the given method.  This should
        synchronously raise a L{ValueError} if either is invalid.

        @param method: the method (e.g. C{GET})

        @param uri: the URI

        @type method:
        ��NotImplementedError��self�methods  �C/usr/lib/python3/dist-packages/twisted/web/test/injectionhelpers.py�!attemptRequestWithMaliciousMethodz;MethodInjectionTestsMixin.attemptRequestWithMaliciousMethods
��"�#�#�c���|jt�5}d}|j|�ddd�|jt	j
�d�y#1swY�/xYw)z�
        Issuing a request with a method that contains a carriage
        return and line feed fails with a L{ValueError}.
        sGET
X-Injected-Header: valueN�^Invalid method)�assertRaises�
ValueErrorr�assertRegex�str�	exception)r�cmr
s   r�test_methodWithCLRFRejectedz5MethodInjectionTestsMixin.test_methodWithCLRFRejected(sX��
�
�
�z�
*�	;�b�7�F��2�2�6�:�	;�	
����R�\�\�*�,=�>�	;�	;���A�A!c��tD]f}dt|g�fz}|jt�5}|j	|�ddd�|jt
j�d��hy#1swY�1xYw)z�
        Issuing a request with a method that contains unprintable
        ASCII characters fails with a L{ValueError}.
        �GET%sNr)�UNPRINTABLE_ASCII�	bytearrayrrrrrr�r�cr
rs    r�'test_methodWithUnprintableASCIIRejectedzAMethodInjectionTestsMixin.test_methodWithUnprintableASCIIRejected2su��
#�	C�A���A�3�� 1�1�F��"�"�:�.�
?�"��6�6�v�>�
?����S����.�0A�B�		C�
?�
?���A1�1A:	c��tD]f}dt|g�fz}|jt�5}|j	|�ddd�|jt
j�d��hy#1swY�1xYw)zx
        Issuing a request with a method that contains non-ASCII
        characters fails with a L{ValueError}.
        rNr)�NONASCIIrrrrrrrrs    r�test_methodWithNonASCIIRejectedz9MethodInjectionTestsMixin.test_methodWithNonASCIIRejected=su��
�	C�A���A�3�� 1�1�F��"�"�:�.�
?�"��6�6�v�>�
?����S����.�0A�B�		C�
?�
?�r"N)�__name__�
__module__�__qualname__�__doc__rrr!r%�rrrrs���$�?�	C�	Crrc�:�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
y	)
�URIInjectionTestsMixina
    A mixin that runs HTTP URI injection tests.  Define
    L{MethodInjectionTestsMixin.attemptRequestWithMaliciousURI} in a
    L{twisted.trial.unittest.SynchronousTestCase} subclass to test how
    HTTP client code behaves when presented with malicious HTTP
    URIs.
    c��t��)z�
        Attempt to send a request with the given URI.  This should
        synchronously raise a L{ValueError} if either is invalid.

        @param uri: the URI.

        @type method:
        r	rs  r�attemptRequestWithMaliciousURIz5URIInjectionTestsMixin.attemptRequestWithMaliciousURIRs
��"�#�#rc���|jt�5}d}|j|�ddd�|jt	j
�d�y#1swY�/xYw)z�
        Issuing a request with a URI whose host contains a carriage
        return and line feed fails with a L{ValueError}.
        shttp://twisted
.invalid/pathN�^Invalid URI�rrr.rrr�rr�uris   r�test_hostWithCRLFRejectedz0URIInjectionTestsMixin.test_hostWithCRLFRejected]�W��
�
�
�z�
*�	5�b�4�C��/�/��4�	5�	
����R�\�\�*�N�;�	5�	5�rc��tD]f}dt|g�fz}|jt�5}|j	|�ddd�|jt
j�d��hy#1swY�1xYw)z�
        Issuing a request with a URI whose host contains unprintable
        ASCII characters fails with a L{ValueError}.
        �http://twisted%s.invalid/OKNr0�rrrrr.rrr�rr r3rs    r�)test_hostWithWithUnprintableASCIIRejectedz@URIInjectionTestsMixin.test_hostWithWithUnprintableASCIIRejectedg�t��
#�	@�A�0�I�q�c�N�3D�D�C��"�"�:�.�
9�"��3�3�C�8�
9����S����.��?�		@�
9�
9�r"c��tD]f}dt|g�fz}|jt�5}|j	|�ddd�|jt
j�d��hy#1swY�1xYw)z{
        Issuing a request with a URI whose host contains non-ASCII
        characters fails with a L{ValueError}.
        r7Nr0�r$rrrr.rrrr9s    r�test_hostWithNonASCIIRejectedz4URIInjectionTestsMixin.test_hostWithNonASCIIRejectedr�t��
�	@�A�0�I�q�c�N�3D�D�C��"�"�:�.�
9�"��3�3�C�8�
9����S����.��?�		@�
9�
9�r"c���|jt�5}d}|j|�ddd�|jt	j
�d�y#1swY�/xYw)z�
        Issuing a request with a URI whose path contains a carriage
        return and line feed fails with a L{ValueError}.
        shttp://twisted.invalid/
pathNr0r1r2s   r�test_pathWithCRLFRejectedz0URIInjectionTestsMixin.test_pathWithCRLFRejected}r5rc��tD]f}dt|g�fz}|jt�5}|j	|�ddd�|jt
j�d��hy#1swY�1xYw)z�
        Issuing a request with a URI whose path contains unprintable
        ASCII characters fails with a L{ValueError}.
        �http://twisted.invalid/OK%sNr0r8r9s    r�)test_pathWithWithUnprintableASCIIRejectedz@URIInjectionTestsMixin.test_pathWithWithUnprintableASCIIRejected�r;r"c��tD]f}dt|g�fz}|jt�5}|j	|�ddd�|jt
j�d��hy#1swY�1xYw)z{
        Issuing a request with a URI whose path contains non-ASCII
        characters fails with a L{ValueError}.
        rCNr0r=r9s    r�test_pathWithNonASCIIRejectedz4URIInjectionTestsMixin.test_pathWithNonASCIIRejected�r?r"N)r&r'r(r)r.r4r:r>rArDrFr*rrr,r,Is.���	$�<�	@�	@�<�	@�	@rr,)
r)�string�	frozenset�ranger�	printablerr$rr,r*rr�<module>rKsi�����e�A�s�m�,�y�
�f����(�0����U�3��_�%��6C�6C�rR@�R@r