簡體   English   中英

Django用mod_wsgi如何設置PYTHONHASHSEED env變量?

[英]Django with mod_wsgi how to set PYTHONHASHSEED env variable?

如何使用mod_wsgi運行django並將PYTHONHASHSEED環境變量設置為隨機? 在像這樣的django設置中設置它是一個好方法嗎?

os.environ['PYTHONHASHSEED'] = 'random'

mod_wsgi 4.1.0為此引入了一個選項( http://modwsgi.readthedocs.org/en/latest/release-notes/version-4.1.0.html ); 你會添加到你的Apache配置:

WSGIPythonHashSeed random

如果無法運行該版本,則必須在Apache進程的啟動環境中設置該變量,該進程將特定於操作系統。 對於Fedora或RHEL 7,您可以創建/etc/systemd/system/httpd.service:

.include /lib/systemd/system/httpd.service
[Service]
Environment=PYTHONHASHSEED=random

然后是systemctl daemon-reload; systemctl restart httpd.service systemctl daemon-reload; systemctl restart httpd.service 對於預先系統化的Red Hats,您可以編輯/ etc / sysconfig / httpd。 對於Debian,它是/ etc / apache2 / envvars。

這是一個WSGI文件來測試它是否正常工作(基於mod_wsgi文檔中的示例):

import sys

def application(environ, start_response):
    status = '200 OK'

    try:
        hr = sys.flags.hash_randomization
        if hr == 0:
            output = 'Hash randomization disabled'
        elif hr == 1:
            output = 'Hash randomization enabled'
        else:
            output = 'Unknown hash randomization: ' + str(hr)
    except AttributeError:
        output = 'Hash randomization not supported'

    response_headers = [('Content-type', 'text/plain'),
                        ('Content-Length', str(len(output)))]
    start_response(status, response_headers)

    return [output]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM