Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions Doc/library/http.server.rst
Original file line number Diff line number Diff line change
Expand Up @@ -287,6 +287,8 @@ instantiation, of which this module provides three different variants:
specifying its value. Note that, after the send_header calls are done,
:meth:`end_headers` MUST BE called in order to complete the operation.

This method does not reject input containing CRLF sequences.

.. versionchanged:: 3.2
Headers are stored in an internal buffer.

Expand All @@ -297,6 +299,8 @@ instantiation, of which this module provides three different variants:
buffered and sent directly the output stream.If the *message* is not
specified, the HTTP message corresponding the response *code* is sent.

This method does not reject *message* containing CRLF sequences.

.. versionadded:: 3.2

.. method:: end_headers()
Expand Down Expand Up @@ -622,6 +626,11 @@ Security considerations
requests, this makes it possible for files outside of the specified directory
to be served.

Methods :meth:`BaseHTTPRequestHandler.send_header` and
:meth:`BaseHTTPRequestHandler.send_response_only` assume sanitized input
and does not perform input validation such as checking for the presence of CRLF
sequences. Untrusted input may result in HTTP Header injection attacks.

Earlier versions of Python did not scrub control characters from the
log messages emitted to stderr from ``python -m http.server`` or the
default :class:`BaseHTTPRequestHandler` ``.log_message``
Expand Down
Loading