.. _security-warnings: .. index:: single: security considerations Security Considerations ======================= The following modules have specific security considerations: * :mod:`base64`: :ref:`base64 security considerations ` in :rfc:`4648` * :mod:`hashlib`: :ref:`all constructors take a "usedforsecurity" keyword-only argument disabling known insecure and blocked algorithms ` * :mod:`http.server` is not suitable for production use, only implementing basic security checks. See the :ref:`security considerations `. * :mod:`logging`: :ref:`Logging configuration uses eval() ` * :mod:`multiprocessing`: :ref:`Connection.recv() uses pickle ` * :mod:`pickle`: :ref:`Restricting globals in pickle ` * :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 ` * :mod:`ssl`: :ref:`SSL/TLS security considerations ` * :mod:`subprocess`: :ref:`Subprocess security considerations ` * :mod:`tempfile`: :ref:`mktemp is deprecated due to vulnerability to race conditions ` * :mod:`xml`: :ref:`XML vulnerabilities ` * :mod:`zipfile`: :ref:`maliciously prepared .zip files can cause disk volume exhaustion ` 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.