Back to Cpython

Security Considerations

Doc/library/security_warnings.rst

3.15.0a81.8 KB
Original Source

.. _security-warnings:

.. index:: single: security considerations

Security Considerations

The following modules have specific security considerations:

  • :mod:base64: :ref:base64 security considerations <base64-security> in :rfc:4648
  • :mod:hashlib: :ref:all constructors take a "usedforsecurity" keyword-only argument disabling known insecure and blocked algorithms <hashlib-usedforsecurity>
  • :mod:http.server is not suitable for production use, only implementing basic security checks. See the :ref:security considerations <http.server-security>.
  • :mod:logging: :ref:Logging configuration uses eval() <logging-eval-security>
  • :mod:multiprocessing: :ref:Connection.recv() uses pickle <multiprocessing-recv-pickle-security>
  • :mod:pickle: :ref:Restricting globals in pickle <pickle-restrict>
  • :mod:random shouldn't be used for security purposes, use :mod:secrets instead
  • :mod:shelve: :ref:shelve is based on pickle and thus unsuitable for dealing with untrusted sources <shelve-security>
  • :mod:ssl: :ref:SSL/TLS security considerations <ssl-security>
  • :mod:subprocess: :ref:Subprocess security considerations <subprocess-security>
  • :mod:tempfile: :ref:mktemp is deprecated due to vulnerability to race conditions <tempfile-mktemp-deprecated>
  • :mod:xml: :ref:XML security <xml-security>
  • :mod:zipfile: :ref:maliciously prepared .zip files can cause disk volume exhaustion <zipfile-resources-limitations>

The :option:-I command line option can be used to run Python in isolated mode. When it cannot be used, the :option:-P option or the :envvar:PYTHONSAFEPATH environment variable can be used to not prepend a potentially unsafe path to :data:sys.path such as the current directory, the script's directory or an empty string.