{"title":"Middleware","version":"5.2","locale":"sv","docname":"ref/middleware","url":"/sv/5.2/ref/middleware/","canonical":"https://djangodocs.dev/sv/5.2/ref/middleware/","summary":"Detta dokument förklarar alla middleware-komponenter som medföljer Django. För information om hur du använder dem och hur du skriver din egen middleware, se…","html":"<span id=\"middleware\"></span><h1>Middleware<a class=\"heading-anchor\" href=\"#module-django.middleware\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>Detta dokument förklarar alla middleware-komponenter som medföljer Django. För information om hur du använder dem och hur du skriver din egen middleware, se <a class=\"reference internal\" href=\"/sv/5.2/topics/http/middleware/\"><span class=\"doc\">middleware usage guide</span></a>.</p>\n<section id=\"available-middleware\">\n<h2>Tillgänglig middleware<a class=\"heading-anchor\" href=\"#available-middleware\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"module-django.middleware.cache\">\n<span id=\"cache-middleware\"></span><h3>Middleware för cacheminne<a class=\"heading-anchor\" href=\"#module-django.middleware.cache\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.middleware.cache.UpdateCacheMiddleware\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">UpdateCacheMiddleware</span></span><a class=\"heading-anchor\" href=\"#django.middleware.cache.UpdateCacheMiddleware\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.middleware.cache.FetchFromCacheMiddleware\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">FetchFromCacheMiddleware</span></span><a class=\"heading-anchor\" href=\"#django.middleware.cache.FetchFromCacheMiddleware\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Aktivera den webbplatsomfattande cacheminnet. Om dessa är aktiverade kommer varje Django-driven sida att cachas så länge som inställningen <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-CACHE_MIDDLEWARE_SECONDS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">CACHE_MIDDLEWARE_SECONDS</span></code></a> definierar. Se <a class=\"reference internal\" href=\"/sv/5.2/topics/cache/\"><span class=\"doc\">cache-dokumentation</span></a>.</p>\n</section>\n<section id=\"module-django.middleware.common\">\n<span id=\"common-middleware\"></span><h3>”Vanlig” mellanprogramvara<a class=\"heading-anchor\" href=\"#module-django.middleware.common\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.middleware.common.CommonMiddleware\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">CommonMiddleware</span></span><a class=\"heading-anchor\" href=\"#django.middleware.common.CommonMiddleware\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.middleware.common.CommonMiddleware.response_redirect_class\">\n<span class=\"sig-name descname\"><span class=\"pre\">response_redirect_class</span></span><a class=\"heading-anchor\" href=\"#django.middleware.common.CommonMiddleware.response_redirect_class\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Standardvärde för <a class=\"reference internal\" href=\"/sv/5.2/ref/request-response/#django.http.HttpResponsePermanentRedirect\" title=\"django.http.HttpResponsePermanentRedirect\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponsePermanentRedirect</span></code></a>. Underklass <code class=\"docutils literal notranslate\"><span class=\"pre\">CommonMiddleware</span></code> och åsidosätt attributet för att anpassa de omdirigeringar som utfärdas av mellanvaran.</p>\n</dd></dl>\n\n</dd></dl>\n\n<p>Lägger till några bekvämligheter för perfektionister:</p>\n<ul>\n<li><p>Förbjuder åtkomst till användaragenter i inställningen <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-DISALLOWED_USER_AGENTS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DISALLOWED_USER_AGENTS</span></code></a>, som bör vara en lista över kompilerade objekt med reguljära uttryck.</p></li>\n<li><p>Utför URL-omskrivning baserat på inställningarna <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-APPEND_SLASH\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">APPEND_SLASH</span></code></a> och <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-PREPEND_WWW\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">PREPEND_WWW</span></code></a>.</p>\n<p>Om <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-APPEND_SLASH\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">APPEND_SLASH</span></code></a> är <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> och den ursprungliga URL:en inte slutar med ett snedstreck, och den inte finns i URLconf, så bildas en ny URL genom att lägga till ett snedstreck i slutet. Om denna nya URL finns i URLconf, omdirigerar Django begäran till denna nya URL. I annat fall behandlas den ursprungliga URL:en som vanligt.</p>\n<p>Till exempel: kommer <code class=\"docutils literal notranslate\"><span class=\"pre\">foo.com/bar</span></code> att omdirigeras till <code class=\"docutils literal notranslate\"><span class=\"pre\">foo.com/bar/</span></code> om du inte har ett giltigt URL-mönster för <code class=\"docutils literal notranslate\"><span class=\"pre\">foo.com/bar</span></code> men <em>har</em> ett giltigt mönster för <code class=\"docutils literal notranslate\"><span class=\"pre\">foo.com/bar/</span></code>.</p>\n<p>Om <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-PREPEND_WWW\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">PREPEND_WWW</span></code></a> är <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> kommer webbadresser som saknar ett inledande ”www.” att omdirigeras till samma webbadress med ett inledande ”www.”</p>\n<p>Båda dessa alternativ är avsedda att normalisera webbadresser. Filosofin är att varje URL ska finnas på en och endast en plats. Tekniskt sett skiljer sig en URL <code class=\"docutils literal notranslate\"><span class=\"pre\">foo.com/bar</span></code> från <code class=\"docutils literal notranslate\"><span class=\"pre\">foo.com/bar/</span></code> - en sökmotors indexerare skulle behandla dem som separata URL:er - så det är bästa praxis att normalisera URL:er.</p>\n<p>Om det behövs kan enskilda vyer uteslutas från <code class=\"docutils literal notranslate\"><span class=\"pre\">APPEND_SLASH</span></code>-beteendet med hjälp av <a class=\"reference internal\" href=\"/sv/5.2/topics/http/decorators/#django.views.decorators.common.no_append_slash\" title=\"django.views.decorators.common.no_append_slash\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">no_append_slash()</span></code></a> decorator:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.views.decorators.common</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">no_append_slash</span>\n\n\n<span class=\"nd\">@no_append_slash</span>\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">sensitive_fbv</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">,</span> <span class=\"o\">*</span><span class=\"n\">args</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n<span class=\"w\">    </span><span class=\"sd\">&quot;&quot;&quot;View to be excluded from APPEND_SLASH.&quot;&quot;&quot;</span>\n    <span class=\"k\">return</span> <span class=\"n\">HttpResponse</span><span class=\"p\">()</span>\n</code></pre></div>\n</li>\n<li><p>Ställer in rubriken <code class=\"docutils literal notranslate\"><span class=\"pre\">Content-Length</span></code> för svar som inte strömmas.</p></li>\n</ul>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.middleware.common.BrokenLinkEmailsMiddleware\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">BrokenLinkEmailsMiddleware</span></span><a class=\"heading-anchor\" href=\"#django.middleware.common.BrokenLinkEmailsMiddleware\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<ul class=\"simple\">\n<li><p>Skickar e-postmeddelanden om trasiga länkar till <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-MANAGERS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MANAGERS</span></code></a> (se <a class=\"reference internal\" href=\"/sv/5.2/howto/error-reporting/\"><span class=\"doc\">Hur man hanterar felrapportering</span></a>).</p></li>\n</ul>\n</section>\n<section id=\"module-django.middleware.gzip\">\n<span id=\"gzip-middleware\"></span><h3>GZip mellanprogram<a class=\"heading-anchor\" href=\"#module-django.middleware.gzip\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.middleware.gzip.GZipMiddleware\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">GZipMiddleware</span></span><a class=\"heading-anchor\" href=\"#django.middleware.gzip.GZipMiddleware\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.middleware.gzip.GZipMiddleware.max_random_bytes\">\n<span class=\"sig-name descname\"><span class=\"pre\">max_random_bytes</span></span><a class=\"heading-anchor\" href=\"#django.middleware.gzip.GZipMiddleware.max_random_bytes\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Standardvärde är 100. Underklassa <code class=\"docutils literal notranslate\"><span class=\"pre\">GZipMiddleware</span></code> och åsidosätt attributet för att ändra det maximala antalet slumpmässiga byte som ingår i komprimerade svar.</p>\n</dd></dl>\n\n</dd></dl>\n\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Observera</p>\n<p>Säkerhetsforskare avslöjade att när komprimeringstekniker (inklusive <code class=\"docutils literal notranslate\"><span class=\"pre\">GZipMiddleware</span></code>) används på en webbplats kan webbplatsen utsättas för ett antal möjliga attacker.</p>\n<p>För att mildra attacker implementerar Django en teknik som kallas <em>Heal The Breach (HTB)</em>. Den lägger till upp till 100 byte (se <a class=\"reference internal\" href=\"#django.middleware.gzip.GZipMiddleware.max_random_bytes\" title=\"django.middleware.gzip.GZipMiddleware.max_random_bytes\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">max_random_bytes</span></code></a>) slumpmässiga byte till varje svar för att göra attackerna mindre effektiva.</p>\n<p>För mer information, se ”Breach paper (PDF)`_, ”breachattack.com`_ och ”Heal The Breach (HTB) paper`_.</p>\n</aside>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.middleware.gzip.GZipMiddleware</span></code> komprimerar innehåll för webbläsare som förstår GZip-komprimering (alla moderna webbläsare).</p>\n<p>Denna middleware bör placeras före alla andra middleware som behöver läsa eller skriva svarskroppen så att komprimeringen sker efteråt.</p>\n<p>Den komprimerar INTE innehåll om något av följande är sant:</p>\n<ul class=\"simple\">\n<li><p>Innehållet är mindre än 200 byte långt.</p></li>\n<li><p>Svaret har redan ställt in rubriken <code class=\"docutils literal notranslate\"><span class=\"pre\">Content-Encoding</span></code>.</p></li>\n<li><p>Begäran (webbläsaren) har inte skickat ett <code class=\"docutils literal notranslate\"><span class=\"pre\">Accept-Encoding</span></code>-huvud som innehåller <code class=\"docutils literal notranslate\"><span class=\"pre\">gzip</span></code>.</p></li>\n</ul>\n<p>Om svaret har en <code class=\"docutils literal notranslate\"><span class=\"pre\">ETag</span></code> header, görs ETag svag för att följa <span class=\"target\" id=\"index-2\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc9110.html#section-8.8.1\"><strong>RFC 9110 Section 8.8.1</strong></a>.</p>\n<p>Du kan tillämpa GZip-komprimering på enskilda vyer med hjälp av <a class=\"reference internal\" href=\"/sv/5.2/topics/http/decorators/#django.views.decorators.gzip.gzip_page\" title=\"django.views.decorators.gzip.gzip_page\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">gzip_page()</span></code></a>-dekoratorn.</p>\n</section>\n<section id=\"module-django.middleware.http\">\n<span id=\"conditional-get-middleware\"></span><h3>Villkorlig GET-mellanvara<a class=\"heading-anchor\" href=\"#module-django.middleware.http\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.middleware.http.ConditionalGetMiddleware\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">ConditionalGetMiddleware</span></span><a class=\"heading-anchor\" href=\"#django.middleware.http.ConditionalGetMiddleware\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Hanterar villkorliga GET-operationer. Om svaret inte har någon <code class=\"docutils literal notranslate\"><span class=\"pre\">ETag</span></code>-rubrik lägger mellanvaran till en vid behov. Om svaret har en <code class=\"docutils literal notranslate\"><span class=\"pre\">ETag</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">Last-Modified</span></code> header, och begäran har <code class=\"docutils literal notranslate\"><span class=\"pre\">If-None-Match</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">If-Modified-Since</span></code>, ersätts svaret av en <a class=\"reference internal\" href=\"/sv/5.2/ref/request-response/#django.http.HttpResponseNotModified\" title=\"django.http.HttpResponseNotModified\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponseNotModified</span></code></a>.</p>\n<p>Du kan hantera villkorliga GET-operationer med enskilda vyer med hjälp av <a class=\"reference internal\" href=\"/sv/5.2/topics/http/decorators/#django.views.decorators.http.conditional_page\" title=\"django.views.decorators.http.conditional_page\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">conditional_page()</span></code></a>-dekoratorn.</p>\n</section>\n<section id=\"module-django.middleware.locale\">\n<span id=\"locale-middleware\"></span><h3>Middleware för lokal språkdräkt<a class=\"heading-anchor\" href=\"#module-django.middleware.locale\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.middleware.locale.LocaleMiddleware\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">LocaleMiddleware</span></span><a class=\"heading-anchor\" href=\"#django.middleware.locale.LocaleMiddleware\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.middleware.locale.LocaleMiddleware.response_redirect_class\">\n<span class=\"sig-name descname\"><span class=\"pre\">response_redirect_class</span></span><a class=\"heading-anchor\" href=\"#django.middleware.locale.LocaleMiddleware.response_redirect_class\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Standardvärde för <a class=\"reference internal\" href=\"/sv/5.2/ref/request-response/#django.http.HttpResponseRedirect\" title=\"django.http.HttpResponseRedirect\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">HttpResponseRedirect</span></code></a>. Underklassa <code class=\"docutils literal notranslate\"><span class=\"pre\">LocaleMiddleware</span></code> och åsidosätt attributet för att anpassa de omdirigeringar som utfärdas av mellanvaran.</p>\n</dd></dl>\n\n</dd></dl>\n\n<p>Möjliggör språkval baserat på data från begäran. Det anpassar innehållet för varje användare. Se <a class=\"reference internal\" href=\"/sv/5.2/topics/i18n/translation/\"><span class=\"doc\">dokumentation om internationalisering</span></a>.</p>\n</section>\n<section id=\"module-django.contrib.messages.middleware\">\n<span id=\"message-middleware\"></span><h3>Middleware för meddelanden<a class=\"heading-anchor\" href=\"#module-django.contrib.messages.middleware\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.messages.middleware.MessageMiddleware\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">MessageMiddleware</span></span><a class=\"heading-anchor\" href=\"#django.contrib.messages.middleware.MessageMiddleware\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Aktiverar cookie- och sessionsbaserat meddelandestöd. Se <a class=\"reference internal\" href=\"/sv/5.2/ref/contrib/messages/\"><span class=\"doc\">meddelanden dokumentation</span></a>.</p>\n</section>\n<section id=\"module-django.middleware.security\">\n<span id=\"id1\"></span><span id=\"security-middleware\"></span><h3>Middleware för säkerhet<a class=\"heading-anchor\" href=\"#module-django.middleware.security\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Varning</p>\n<p>Om din distributionssituation tillåter det är det vanligtvis en bra idé att låta din front-end webbserver utföra den funktionalitet som tillhandahålls av <code class=\"docutils literal notranslate\"><span class=\"pre\">SecurityMiddleware</span></code>. På så sätt, om det finns förfrågningar som inte serveras av Django (t.ex. statiska media eller användaruppladdade filer), kommer de att ha samma skydd som förfrågningar till din Django-applikation.</p>\n</aside>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.middleware.security.SecurityMiddleware\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">SecurityMiddleware</span></span><a class=\"heading-anchor\" href=\"#django.middleware.security.SecurityMiddleware\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">django.middleware.security.SecurityMiddleware</span></code> ger flera säkerhetsförbättringar till request/response-cykeln. Var och en kan aktiveras eller inaktiveras oberoende av varandra med en inställning.</p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-SECURE_CONTENT_TYPE_NOSNIFF\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_CONTENT_TYPE_NOSNIFF</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-SECURE_CROSS_ORIGIN_OPENER_POLICY\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_CROSS_ORIGIN_OPENER_POLICY</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-SECURE_HSTS_INCLUDE_SUBDOMAINS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_HSTS_INCLUDE_SUBDOMAINS</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-SECURE_HSTS_PRELOAD\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_HSTS_PRELOAD</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-SECURE_HSTS_SECONDS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_HSTS_SECONDS</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-SECURE_REDIRECT_EXEMPT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_REDIRECT_EXEMPT</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-SECURE_REFERRER_POLICY\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_REFERRER_POLICY</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-SECURE_SSL_HOST\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_SSL_HOST</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-SECURE_SSL_REDIRECT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_SSL_REDIRECT</span></code></a></p></li>\n</ul>\n<section id=\"http-strict-transport-security\">\n<span id=\"id2\"></span><h4>HTTP Strict Transport Security<a class=\"heading-anchor\" href=\"#http-strict-transport-security\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>För webbplatser som endast bör nås via HTTPS kan du instruera moderna webbläsare att vägra ansluta till ditt domännamn via en osäker anslutning (under en viss tidsperiod) genom att ställa in rubriken ”Strict-Transport-Security”. Detta minskar din exponering för vissa SSL-strippande MITM-attacker (man-in-the-middle).</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">SecurityMiddleware</span></code> kommer att ställa in detta huvud åt dig på alla HTTPS-svar om du ställer in <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-SECURE_HSTS_SECONDS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_HSTS_SECONDS</span></code></a> till ett heltal som inte är noll.</p>\n<p>När du aktiverar HSTS är det en bra idé att först använda ett litet värde för testning, t.ex. <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-SECURE_HSTS_SECONDS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_HSTS_SECONDS</span> <span class=\"pre\">=</span> <span class=\"pre\">3600</span></code></a> för en timme. Varje gång en webbläsare ser HSTS-rubriken från din webbplats kommer den att vägra att kommunicera på ett icke-säkert sätt (med HTTP) med din domän under den angivna tidsperioden. När du har bekräftat att alla tillgångar serveras säkert på din webbplats (dvs. att HSTS inte förstörde något) är det en bra idé att öka detta värde så att besökare som kommer sällan skyddas (31536000 sekunder, dvs. 1 år, är vanligt).</p>\n<p>Om du dessutom anger inställningen <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-SECURE_HSTS_INCLUDE_SUBDOMAINS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_HSTS_INCLUDE_SUBDOMAINS</span></code></a> till <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>, kommer <code class=\"docutils literal notranslate\"><span class=\"pre\">SecurityMiddleware</span></code> att lägga till direktivet <code class=\"docutils literal notranslate\"><span class=\"pre\">includeSubDomains</span></code> i <code class=\"docutils literal notranslate\"><span class=\"pre\">Strict-Transport-Security</span></code>-headern. Detta rekommenderas (förutsatt att alla underdomäner serveras uteslutande med HTTPS), annars kan din webbplats fortfarande vara sårbar via en osäker anslutning till en underdomän.</p>\n<p>Om du vill lägga till din webbplats i listan över förinlästa sidor i webbläsaren ska du ställa in <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-SECURE_HSTS_PRELOAD\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_HSTS_PRELOAD</span></code></a> på <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>. Då läggs direktivet <code class=\"docutils literal notranslate\"><span class=\"pre\">preload</span></code> till i rubriken <code class=\"docutils literal notranslate\"><span class=\"pre\">Strict-Transport-Security</span></code>.</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Varning</p>\n<p>HSTS-policyn gäller för hela din domän, inte bara webbadressen till det svar som du anger rubriken för. Därför bör du bara använda den om hela din domän endast serveras via HTTPS.</p>\n<p>Webbläsare som respekterar HSTS-rubriken kommer inte att tillåta användare att kringgå varningar och ansluta till en webbplats med ett utgånget, självsignerat eller på annat sätt ogiltigt SSL-certifikat. Om du använder HSTS ska du se till att dina certifikat är i gott skick och att de förblir det!</p>\n</aside>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Observera</p>\n<p>Om du är placerad bakom en lastbalanserare eller omvänd proxyserver och rubriken <code class=\"docutils literal notranslate\"><span class=\"pre\">Strict-Transport-Security</span></code> inte läggs till i dina svar, kan det bero på att Django inte inser att det är på en säker anslutning; du kan behöva ställa in <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-SECURE_PROXY_SSL_HEADER\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_PROXY_SSL_HEADER</span></code></a>-inställningen.</p>\n</aside>\n</section>\n<section id=\"referrer-policy\">\n<span id=\"id4\"></span><h4>Policy för hänvisare<a class=\"heading-anchor\" href=\"#referrer-policy\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Webbläsare använder Referer-headern som ett sätt att skicka information till en webbplats om hur användarna kom dit. När en användare klickar på en länk skickar webbläsaren hela webbadressen till den länkande sidan som referent. Detta kan vara användbart för vissa ändamål - som att ta reda på vem som länkar till din webbplats - men det kan också orsaka integritetsproblem genom att informera en webbplats om att en användare har besökt en annan webbplats.</p>\n<p>Vissa webbläsare har möjlighet att acceptera tips om huruvida de ska skicka HTTP-rubriken ”Referer” när en användare klickar på en länk; detta tips tillhandahålls via rubriken ”Referrer-Policy”. Detta huvud kan föreslå något av tre beteenden för webbläsare:</p>\n<ul class=\"simple\">\n<li><p>Full URL: skicka hela URL:en i rubriken <code class=\"docutils literal notranslate\"><span class=\"pre\">Referer</span></code>. Om användaren t.ex. besöker <code class=\"docutils literal notranslate\"><span class=\"pre\">https://example.com/page.html</span></code>, skulle <code class=\"docutils literal notranslate\"><span class=\"pre\">Referer</span></code>-headern innehålla <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;https://example.com/page.html&quot;</span></code>.</p></li>\n<li><p>Endast ursprung: skicka endast ”ursprunget” i referensen. Ursprunget består av schema, värd och (valfritt) portnummer. Om användaren t.ex. besöker <code class=\"docutils literal notranslate\"><span class=\"pre\">https://example.com/page.html</span></code>, skulle ursprunget vara <code class=\"docutils literal notranslate\"><span class=\"pre\">https://example.com/</span></code>.</p></li>\n<li><p>Ingen referrer: skicka inte någon <code class=\"docutils literal notranslate\"><span class=\"pre\">Referer</span></code> header alls.</p></li>\n</ul>\n<p>Det finns två typer av tillstånd som denna rubrik kan tala om för en webbläsare att se upp med:</p>\n<ul class=\"simple\">\n<li><p>Samma ursprung kontra korsande ursprung: en länk från <code class=\"docutils literal notranslate\"><span class=\"pre\">https://example.com/1.html</span></code> till <code class=\"docutils literal notranslate\"><span class=\"pre\">https://example.com/2.html</span></code> är samma ursprung. En länk från <code class=\"docutils literal notranslate\"><span class=\"pre\">https://example.com/page.html</span></code> till <code class=\"docutils literal notranslate\"><span class=\"pre\">https://not.example.com/page.html</span></code> är cross-origin.</p></li>\n<li><p>Protokollnedgradering: en nedgradering sker om sidan som innehåller länken serveras via HTTPS, men sidan som länkas till inte serveras via HTTPS.</p></li>\n</ul>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Varning</p>\n<p>När din webbplats serveras via HTTPS kräver <a class=\"reference internal\" href=\"/sv/5.2/ref/csrf/#how-csrf-works\"><span class=\"std std-ref\">Djangos CSRF-skyddssystem</span></a> att rubriken <code class=\"docutils literal notranslate\"><span class=\"pre\">Referer</span></code> finns, så att helt inaktivera rubriken <code class=\"docutils literal notranslate\"><span class=\"pre\">Referer</span></code> kommer att störa CSRF-skyddet. För att få de flesta fördelarna med att inaktivera <code class=\"docutils literal notranslate\"><span class=\"pre\">Referer</span></code>-rubriker och samtidigt behålla CSRF-skyddet, överväg att endast aktivera referenser med samma ursprung.</p>\n</aside>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">SecurityMiddleware</span></code> kan ställa in rubriken <code class=\"docutils literal notranslate\"><span class=\"pre\">Referrer-Policy</span></code> åt dig, baserat på inställningen <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-SECURE_REFERRER_POLICY\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_REFERRER_POLICY</span></code></a> (notera stavning: webbläsare skickar en rubrik <code class=\"docutils literal notranslate\"><span class=\"pre\">Referer</span></code> när en användare klickar på en länk, men rubriken som instruerar en webbläsare om att göra det stavas <code class=\"docutils literal notranslate\"><span class=\"pre\">Referrer-Policy</span></code>). De giltiga värdena för denna inställning är:</p>\n<dl class=\"simple\">\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">Ingen</span> <span class=\"pre\">hänvisare</span></code></dt><dd><p>Anvisar webbläsaren att inte skicka någon referent för länkar som klickas på denna webbplats.</p>\n</dd>\n<dt>”Ingen hänvisning vid nedgradering” (no-referrer-when-downgrade)</dt><dd><p>Instruerar webbläsaren att skicka en fullständig URL som referent, men endast när ingen protokollnedgradering sker.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">ursprung</span></code></dt><dd><p>Instruerar webbläsaren att endast skicka ursprunget, inte hela URL:en, som referent.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">ursprung-när-korsat-ursprung</span></code></dt><dd><p>Instruerar webbläsaren att skicka hela URL:en som referent för länkar med samma ursprung, och endast ursprunget för länkar med olika ursprung.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">Samma</span> <span class=\"pre\">ursprung</span></code></dt><dd><p>Anvisar webbläsaren att skicka en fullständig URL, men endast för länkar med samma ursprung. Ingen referrer kommer att skickas för länkar med korsande ursprung.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">strict-origin</span></code></dt><dd><p>Instruerar webbläsaren att endast skicka ursprunget, inte hela URL:en, och att inte skicka någon referent när en protokollnedgradering inträffar.</p>\n</dd>\n<dt>”begränsa ursprunget när det korsas</dt><dd><p>Instruerar webbläsaren att skicka hela URL:en när länken är av samma ursprung och ingen protokollnedgradering sker; skicka endast ursprunget när länken är av korsande ursprung och ingen protokollnedgradering sker; och ingen referent när en protokollnedgradering sker.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">unsafe-url</span></code></dt><dd><p>Instruerar webbläsaren att alltid skicka den fullständiga URL:en som referent.</p>\n</dd>\n</dl>\n<aside class=\"admonition-unknown-policy-values admonition\">\n<p class=\"admonition-title\">Okända policyvärden</p>\n<p>Om ett policyvärde är ”okänt” för en användaragent är det möjligt att ange flera policyvärden för att tillhandahålla en reservlösning. Det senast angivna värdet som förstås har företräde. För att stödja detta kan en iterabel eller kommaseparerad sträng användas med <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-SECURE_REFERRER_POLICY\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_REFERRER_POLICY</span></code></a>.</p>\n</aside>\n</section>\n<section id=\"cross-origin-opener-policy\">\n<span id=\"id8\"></span><h4>Policy för öppnare för flera ursprung<a class=\"heading-anchor\" href=\"#cross-origin-opener-policy\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Vissa webbläsare har möjlighet att isolera toppnivåfönster från andra dokument genom att placera dem i en separat webbläsarkontextgrupp baserat på värdet i rubriken COOP (Cross-Origin Opener Policy). Om ett dokument som är isolerat på detta sätt öppnar ett popup-fönster med flera ursprung, kommer popup-fönstrets egenskap <code class=\"docutils literal notranslate\"><span class=\"pre\">window.opener</span></code> att vara <code class=\"docutils literal notranslate\"><span class=\"pre\">null</span></code>. Att isolera fönster med hjälp av COOP är ett djupförsvarsskydd mot cross-origin-attacker, särskilt sådana som Spectre som möjliggjorde exfiltrering av data som laddats in i en delad webbläsarkontext.</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">SecurityMiddleware</span></code> kan ställa in rubriken <code class=\"docutils literal notranslate\"><span class=\"pre\">Cross-Origin-Opener-Policy</span></code> åt dig, baserat på inställningen <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-SECURE_CROSS_ORIGIN_OPENER_POLICY\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_CROSS_ORIGIN_OPENER_POLICY</span></code></a>. De giltiga värdena för denna inställning är:</p>\n<dl class=\"simple\">\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">Samma</span> <span class=\"pre\">ursprung</span></code></dt><dd><p>Isolerar bläddringskontexten uteslutande till dokument med samma ursprung. Dokument med olika ursprung läses inte in i samma bläddringskontext. Detta är standardalternativet och det säkraste alternativet.</p>\n</dd>\n<dt>samma-ursprung-tillåt-popups</dt><dd><p>Isolerar bläddringskontexten till dokument med samma ursprung eller sådana som antingen inte anger COOP eller som väljer bort isolering genom att ange en COOP på <code class=\"docutils literal notranslate\"><span class=\"pre\">unsafe-none</span></code>.</p>\n</dd>\n<dt><code class=\"docutils literal notranslate\"><span class=\"pre\">unsafe-none</span></code></dt><dd><p>Tillåter att dokumentet läggs till i öppnarens bläddringskontextgrupp om inte öppnaren själv har en COOP av <code class=\"docutils literal notranslate\"><span class=\"pre\">samme-origin</span></code> eller <code class=\"docutils literal notranslate\"><span class=\"pre\">samme-origin-allow-popups</span></code>.</p>\n</dd>\n</dl>\n</section>\n<section id=\"x-content-type-options-nosniff\">\n<span id=\"x-content-type-options\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">X-Content-Type-Options:</span> <span class=\"pre\">nosniff</span></code><a class=\"heading-anchor\" href=\"#x-content-type-options-nosniff\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Vissa webbläsare försöker gissa innehållstyperna för de tillgångar som de hämtar och åsidosätter rubriken <code class=\"docutils literal notranslate\"><span class=\"pre\">Content-Type</span></code>. Även om detta kan hjälpa till att visa webbplatser med felaktigt konfigurerade servrar, kan det också utgöra en säkerhetsrisk.</p>\n<p>Om din webbplats serverar filer som laddats upp av användare kan en illvillig användare ladda upp en särskilt utformad fil som tolkas som HTML eller JavaScript av webbläsaren när du förväntade dig att det skulle vara något ofarligt.</p>\n<p>För att förhindra webbläsaren från att gissa innehållstypen och tvinga den att alltid använda den typ som anges i <code class=\"docutils literal notranslate\"><span class=\"pre\">Content-Type</span></code>-huvudet, kan du skicka <a href=\"#id13\"><span class=\"problematic\" id=\"id14\">`X-Content-Type-Options: nosniff`__</span></a>-huvudet.  <code class=\"docutils literal notranslate\"><span class=\"pre\">SecurityMiddleware</span></code> kommer att göra detta för alla svar om inställningen <code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_CONTENT_TYPE_NOSNIFF`</span></code> är <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>.</p>\n<p>Observera att i de flesta distributionssituationer där Django inte är inblandad i att servera filer som laddats upp av användaren, kommer den här inställningen inte att hjälpa dig. Till exempel:, om din <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-MEDIA_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MEDIA_URL</span></code></a> serveras direkt av din front-end webbserver (nginx, Apache, etc.) så skulle du vilja ställa in den här rubriken där. Å andra sidan, om du använder Django för att göra något som att kräva auktorisering för att ladda ner filer och du inte kan ställa in rubriken med din webbserver, kommer den här inställningen att vara användbar.</p>\n</section>\n<section id=\"ssl-redirect\">\n<span id=\"id11\"></span><h4>SSL-omdirigering<a class=\"heading-anchor\" href=\"#ssl-redirect\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>Om din webbplats erbjuder både HTTP- och HTTPS-anslutningar kommer de flesta användare att hamna på en osäker anslutning som standard. För bästa säkerhet bör du omdirigera alla HTTP-anslutningar till HTTPS.</p>\n<p>Om du sätter inställningen <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-SECURE_SSL_REDIRECT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_SSL_REDIRECT</span></code></a> till True kommer <code class=\"docutils literal notranslate\"><span class=\"pre\">SecurityMiddleware</span></code> att permanent (HTTP 301) omdirigera alla HTTP-anslutningar till HTTPS.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Observera</p>\n<p>Av prestandaskäl är det att föredra att göra dessa omdirigeringar utanför Django, i en front-end lastbalanserare eller omvänd proxyserver som <a class=\"reference external\" href=\"https://nginx.org/\">nginx</a>. <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-SECURE_SSL_REDIRECT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_SSL_REDIRECT</span></code></a> är avsedd för distributionssituationer där detta inte är ett alternativ.</p>\n</aside>\n<p>Om inställningen <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-SECURE_SSL_HOST\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_SSL_HOST</span></code></a> har ett värde kommer alla omdirigeringar att skickas till den värden i stället för till den ursprungligen begärda värden.</p>\n<p>Om det finns några sidor på din webbplats som ska vara tillgängliga via HTTP och inte omdirigeras till HTTPS kan du lista reguljära uttryck för att matcha dessa webbadresser i inställningen <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-SECURE_REDIRECT_EXEMPT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_REDIRECT_EXEMPT</span></code></a>.</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Observera</p>\n<p>Om du är placerad bakom en lastbalanserare eller omvänd proxyserver och Django inte verkar kunna avgöra när en begäran faktiskt redan är säker, kan du behöva ställa in <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-SECURE_PROXY_SSL_HEADER\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SECURE_PROXY_SSL_HEADER</span></code></a>.</p>\n</aside>\n</section>\n</section>\n<section id=\"module-django.contrib.sessions.middleware\">\n<span id=\"session-middleware\"></span><h3>Mellanprogram för sessioner<a class=\"heading-anchor\" href=\"#module-django.contrib.sessions.middleware\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.sessions.middleware.SessionMiddleware\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">SessionMiddleware</span></span><a class=\"heading-anchor\" href=\"#django.contrib.sessions.middleware.SessionMiddleware\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Aktiverar stöd för sessioner. Se <a class=\"reference internal\" href=\"/sv/5.2/topics/http/sessions/\"><span class=\"doc\">session-dokumentation</span></a>.</p>\n</section>\n<section id=\"module-django.contrib.sites.middleware\">\n<span id=\"site-middleware\"></span><h3>Middleware för webbplatsen<a class=\"heading-anchor\" href=\"#module-django.contrib.sites.middleware\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.sites.middleware.CurrentSiteMiddleware\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">CurrentSiteMiddleware</span></span><a class=\"heading-anchor\" href=\"#django.contrib.sites.middleware.CurrentSiteMiddleware\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Lägger till attributet <code class=\"docutils literal notranslate\"><span class=\"pre\">site</span></code> som representerar den aktuella webbplatsen till varje inkommande <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code>-objekt. Se <a class=\"reference internal\" href=\"/sv/5.2/ref/contrib/sites/#site-middleware\"><span class=\"std std-ref\">sites dokumentation</span></a>.</p>\n</section>\n<section id=\"module-django.contrib.auth.middleware\">\n<span id=\"authentication-middleware\"></span><h3>Middleware för autentisering<a class=\"heading-anchor\" href=\"#module-django.contrib.auth.middleware\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.middleware.AuthenticationMiddleware\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">AuthenticationMiddleware</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.middleware.AuthenticationMiddleware\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Lägger till attributet <code class=\"docutils literal notranslate\"><span class=\"pre\">user</span></code>, som representerar den inloggade användaren, till varje inkommande <code class=\"docutils literal notranslate\"><span class=\"pre\">HttpRequest</span></code>-objekt. Se <a class=\"reference internal\" href=\"/sv/5.2/topics/auth/default/#auth-web-requests\"><span class=\"std std-ref\">Autenticering i webbförfrågningar</span></a>.</p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.middleware.LoginRequiredMiddleware\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">LoginRequiredMiddleware</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.middleware.LoginRequiredMiddleware\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Subklassa mellanvaran och åsidosätt följande attribut och metoder för att anpassa beteendet för oautentiserade begäranden.</p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.middleware.LoginRequiredMiddleware.redirect_field_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">redirect_field_name</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.middleware.LoginRequiredMiddleware.redirect_field_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Standardvärdet är <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;next&quot;</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.middleware.LoginRequiredMiddleware.get_login_url\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_login_url</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.auth.middleware.LoginRequiredMiddleware.get_login_url\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returnerar URL:en som oautentiserade förfrågningar kommer att omdirigeras till. Detta resultat är antingen <code class=\"docutils literal notranslate\"><span class=\"pre\">login_url</span></code> som ställts in på <a class=\"reference internal\" href=\"/sv/5.2/topics/auth/default/#django.contrib.auth.decorators.login_required\" title=\"django.contrib.auth.decorators.login_required\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">login_required()</span></code></a> decorator (om inte <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>), eller <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-LOGIN_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">settings.LOGIN_URL</span></code></a>.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.middleware.LoginRequiredMiddleware.get_redirect_field_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_redirect_field_name</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.contrib.auth.middleware.LoginRequiredMiddleware.get_redirect_field_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returnerar namnet på den frågeparameter som innehåller den URL som användaren ska omdirigeras till efter en lyckad inloggning. Detta resultat är antingen <code class=\"docutils literal notranslate\"><span class=\"pre\">redirect_field_name</span></code> som ställts in på <a class=\"reference internal\" href=\"/sv/5.2/topics/auth/default/#django.contrib.auth.decorators.login_required\" title=\"django.contrib.auth.decorators.login_required\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">login_required()</span></code></a> decorator (om inte <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>), eller <a class=\"reference internal\" href=\"#django.contrib.auth.middleware.LoginRequiredMiddleware.redirect_field_name\" title=\"django.contrib.auth.middleware.LoginRequiredMiddleware.redirect_field_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">redirect_field_name</span></code></a>. Om <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> returneras kommer ingen frågeparameter att läggas till.</p>\n</dd></dl>\n\n</dd></dl>\n\n<aside class=\"version-note version-added\" data-version=\"5.1\">\n<p class=\"version-note-title\">New in Django 5.1</p></aside>\n<p>Omdirigerar alla oautentiserade förfrågningar till en inloggningssida, utom för vyer som utesluts med <a class=\"reference internal\" href=\"/sv/5.2/topics/auth/default/#django.contrib.auth.decorators.login_not_required\" title=\"django.contrib.auth.decorators.login_not_required\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">login_not_required()</span></code></a>. Inloggningssidan är som standard <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-LOGIN_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">settings.LOGIN_URL</span></code></a>, men kan anpassas.</p>\n<p>Aktivera denna middleware genom att lägga till den i inställningen <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-MIDDLEWARE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MIDDLEWARE</span></code></a> <strong>after</strong> <a class=\"reference internal\" href=\"#django.contrib.auth.middleware.AuthenticationMiddleware\" title=\"django.contrib.auth.middleware.AuthenticationMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AuthenticationMiddleware</span></code></a>:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"n\">MIDDLEWARE</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"s2\">&quot;...&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;django.contrib.auth.middleware.AuthenticationMiddleware&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;django.contrib.auth.middleware.LoginRequiredMiddleware&quot;</span><span class=\"p\">,</span>\n    <span class=\"s2\">&quot;...&quot;</span><span class=\"p\">,</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>Gör en vy publik och tillåt oautentiserade förfrågningar med <a class=\"reference internal\" href=\"/sv/5.2/topics/auth/default/#django.contrib.auth.decorators.login_not_required\" title=\"django.contrib.auth.decorators.login_not_required\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">login_not_required()</span></code></a>. Till exempel:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.auth.decorators</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">login_not_required</span>\n\n\n<span class=\"nd\">@login_not_required</span>\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">contact_us</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span> <span class=\"o\">...</span>\n</code></pre></div>\n<p>Anpassa inloggningsadressen eller fältnamnet för autentiserade vyer med <a class=\"reference internal\" href=\"/sv/5.2/topics/auth/default/#django.contrib.auth.decorators.login_required\" title=\"django.contrib.auth.decorators.login_required\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">login_required()</span></code></a> decorator för att ställa in <code class=\"docutils literal notranslate\"><span class=\"pre\">login_url</span></code> respektive <code class=\"docutils literal notranslate\"><span class=\"pre\">redirect_field_name</span></code>. Till exempel:</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.contrib.auth.decorators</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">login_required</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.utils.decorators</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">method_decorator</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.views.generic</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">View</span>\n\n\n<span class=\"nd\">@login_required</span><span class=\"p\">(</span><span class=\"n\">login_url</span><span class=\"o\">=</span><span class=\"s2\">&quot;/books/login/&quot;</span><span class=\"p\">,</span> <span class=\"n\">redirect_field_name</span><span class=\"o\">=</span><span class=\"s2\">&quot;redirect_to&quot;</span><span class=\"p\">)</span>\n<span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">book_dashboard</span><span class=\"p\">(</span><span class=\"n\">request</span><span class=\"p\">):</span> <span class=\"o\">...</span>\n\n\n<span class=\"nd\">@method_decorator</span><span class=\"p\">(</span>\n    <span class=\"n\">login_required</span><span class=\"p\">(</span><span class=\"n\">login_url</span><span class=\"o\">=</span><span class=\"s2\">&quot;/books/login/&quot;</span><span class=\"p\">,</span> <span class=\"n\">redirect_field_name</span><span class=\"o\">=</span><span class=\"s2\">&quot;redirect_to&quot;</span><span class=\"p\">),</span>\n    <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;dispatch&quot;</span><span class=\"p\">,</span>\n<span class=\"p\">)</span>\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">BookMetrics</span><span class=\"p\">(</span><span class=\"n\">View</span><span class=\"p\">):</span>\n    <span class=\"k\">pass</span>\n</code></pre></div>\n<aside class=\"admonition-ensure-that-your-login-view-does-not-require-a-login admonition\">\n<p class=\"admonition-title\">Se till att din inloggningsvy inte kräver inloggning.</p>\n<p>För att förhindra oändliga omdirigeringar, se till att du har <a class=\"reference internal\" href=\"/sv/5.2/topics/auth/default/#disable-login-required-middleware-for-views\"><span class=\"std std-ref\">enabled unauthenticated requests</span></a> till din inloggningsvy.</p>\n</aside>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.middleware.RemoteUserMiddleware\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">RemoteUserMiddleware</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.middleware.RemoteUserMiddleware\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Middleware för att använda autentisering som tillhandahålls av webbservern. Se <a class=\"reference internal\" href=\"/sv/5.2/howto/auth-remote-user/\"><span class=\"doc\">Hur man autentiserar med hjälp av REMOTE_USER</span></a> för användningsdetaljer.</p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.contrib.auth.middleware.PersistentRemoteUserMiddleware\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">PersistentRemoteUserMiddleware</span></span><a class=\"heading-anchor\" href=\"#django.contrib.auth.middleware.PersistentRemoteUserMiddleware\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Middleware för att använda autentisering som tillhandahålls av webbservern när den endast är aktiverad på inloggningssidan. Se <a class=\"reference internal\" href=\"/sv/5.2/howto/auth-remote-user/#persistent-remote-user-middleware-howto\"><span class=\"std std-ref\">Använda REMOTE_USER endast på inloggningssidor</span></a> för användningsdetaljer.</p>\n</section>\n<section id=\"csrf-protection-middleware\">\n<h3>Middleware för CSRF-skydd<a class=\"heading-anchor\" href=\"#csrf-protection-middleware\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.middleware.csrf.CsrfViewMiddleware\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">CsrfViewMiddleware</span></span><a class=\"heading-anchor\" href=\"#django.middleware.csrf.CsrfViewMiddleware\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Lägger till skydd mot Cross Site Request Forgeries genom att lägga till dolda formulärfält i POST-formulär och kontrollera förfrågningar om rätt värde. Se <a class=\"reference internal\" href=\"/sv/5.2/ref/csrf/\"><span class=\"doc\">Dokumentation om skydd mot Cross Site Request Forgery</span></a>.</p>\n<p>Du kan lägga till skydd mot Cross Site Request Forgery för enskilda vyer med hjälp av <a class=\"reference internal\" href=\"/sv/5.2/ref/csrf/#django.views.decorators.csrf.csrf_protect\" title=\"django.views.decorators.csrf.csrf_protect\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">csrf_protect()</span></code></a>-dekoratorn.</p>\n</section>\n<section id=\"x-frame-options-middleware\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">X-Frame-Options</span></code> middleware<a class=\"heading-anchor\" href=\"#x-frame-options-middleware\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.middleware.clickjacking.XFrameOptionsMiddleware\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">XFrameOptionsMiddleware</span></span><a class=\"heading-anchor\" href=\"#django.middleware.clickjacking.XFrameOptionsMiddleware\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<p>Enkel <a class=\"reference internal\" href=\"/sv/5.2/ref/clickjacking/\"><span class=\"doc\">clickjacking-skydd via X-Frame-Options-huvudet</span></a>.</p>\n</section>\n</section>\n<section id=\"middleware-ordering\">\n<span id=\"id12\"></span><h2>Beställning av mellanprogramvara<a class=\"heading-anchor\" href=\"#middleware-ordering\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Här är några tips om ordningen för olika Django middleware-klasser:</p>\n<ol class=\"arabic\">\n<li><p><a class=\"reference internal\" href=\"#django.middleware.security.SecurityMiddleware\" title=\"django.middleware.security.SecurityMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SecurityMiddleware</span></code></a></p>\n<p>Den bör ligga högst upp på listan om du ska aktivera SSL-omdirigeringen eftersom du då slipper köra igenom en massa andra onödiga mellanprogram.</p>\n</li>\n<li><p><a class=\"reference internal\" href=\"#django.middleware.cache.UpdateCacheMiddleware\" title=\"django.middleware.cache.UpdateCacheMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">UpdateCacheMiddleware</span></code></a></p>\n<p>Före de som ändrar <code class=\"docutils literal notranslate\"><span class=\"pre\">Vary</span></code>-headern (<code class=\"docutils literal notranslate\"><span class=\"pre\">SessionMiddleware</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">GZipMiddleware</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">LocaleMiddleware</span></code>).</p>\n</li>\n<li><p><a class=\"reference internal\" href=\"#django.middleware.gzip.GZipMiddleware\" title=\"django.middleware.gzip.GZipMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">GZipMiddleware</span></code></a></p>\n<p>Före alla mellanprogram som kan ändra eller använda svarskroppen.</p>\n<p>Efter <code class=\"docutils literal notranslate\"><span class=\"pre\">UpdateCacheMiddleware</span></code>: Ändrar rubriken <code class=\"docutils literal notranslate\"><span class=\"pre\">Vary</span></code>.</p>\n</li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.sessions.middleware.SessionMiddleware\" title=\"django.contrib.sessions.middleware.SessionMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SessionMiddleware</span></code></a></p>\n<p>Innan någon middleware som kan ge upphov till ett undantag utlöser en felvy (t.ex. <a class=\"reference internal\" href=\"/sv/5.2/ref/exceptions/#django.core.exceptions.PermissionDenied\" title=\"django.core.exceptions.PermissionDenied\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">PermissionDenied</span></code></a>) om du använder <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-CSRF_USE_SESSIONS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">CSRF_USE_SESSIONS</span></code></a>.</p>\n<p>Efter <code class=\"docutils literal notranslate\"><span class=\"pre\">UpdateCacheMiddleware</span></code>: Ändrar rubriken <code class=\"docutils literal notranslate\"><span class=\"pre\">Vary</span></code>.</p>\n</li>\n<li><p><a class=\"reference internal\" href=\"#django.middleware.http.ConditionalGetMiddleware\" title=\"django.middleware.http.ConditionalGetMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">ConditionalGetMiddleware</span></code></a></p>\n<p>Innan någon middleware som kan ändra svaret (den sätter <code class=\"docutils literal notranslate\"><span class=\"pre\">ETag</span></code>-headern).</p>\n<p>Efter <code class=\"docutils literal notranslate\"><span class=\"pre\">GZipMiddleware</span></code> så att den inte beräknar en <code class=\"docutils literal notranslate\"><span class=\"pre\">ETag</span></code> header på gzippat innehåll.</p>\n</li>\n<li><p><a class=\"reference internal\" href=\"#django.middleware.locale.LocaleMiddleware\" title=\"django.middleware.locale.LocaleMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">LocaleMiddleware</span></code></a></p>\n<p>En av de översta, efter <code class=\"docutils literal notranslate\"><span class=\"pre\">SessionMiddleware</span></code> (använder sessionsdata) och <code class=\"docutils literal notranslate\"><span class=\"pre\">UpdateCacheMiddleware</span></code> (ändrar <code class=\"docutils literal notranslate\"><span class=\"pre\">Vary</span></code> header).</p>\n</li>\n<li><p><a class=\"reference internal\" href=\"#django.middleware.common.CommonMiddleware\" title=\"django.middleware.common.CommonMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">CommonMiddleware</span></code></a></p>\n<p>Före alla mellanprogram som kan ändra svaret (det anger rubriken <code class=\"docutils literal notranslate\"><span class=\"pre\">Content-Length</span></code>). En middleware som visas före <code class=\"docutils literal notranslate\"><span class=\"pre\">CommonMiddleware</span></code> och ändrar svaret måste återställa <code class=\"docutils literal notranslate\"><span class=\"pre\">Content-Length</span></code>.</p>\n<p>Nära toppen: den omdirigerar när <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-APPEND_SLASH\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">APPEND_SLASH</span></code></a> eller <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-PREPEND_WWW\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">PREPEND_WWW</span></code></a> är inställda på <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>.</p>\n<p>Efter <code class=\"docutils literal notranslate\"><span class=\"pre\">SessionMiddleware</span></code> om du använder <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-CSRF_USE_SESSIONS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">CSRF_USE_SESSIONS</span></code></a>.</p>\n</li>\n<li><p><a class=\"reference internal\" href=\"#django.middleware.csrf.CsrfViewMiddleware\" title=\"django.middleware.csrf.CsrfViewMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">CsrfViewMiddleware</span></code></a></p>\n<p>Innan någon vy middleware som förutsätter att CSRF-attacker har hanterats.</p>\n<p>Före <a class=\"reference internal\" href=\"#django.contrib.auth.middleware.RemoteUserMiddleware\" title=\"django.contrib.auth.middleware.RemoteUserMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RemoteUserMiddleware</span></code></a>, eller någon annan autentiseringsmellanvara som kan utföra en inloggning, och därmed rotera CSRF-token, innan den anropar vidare i mellanvarukedjan.</p>\n<p>Efter <code class=\"docutils literal notranslate\"><span class=\"pre\">SessionMiddleware</span></code> om du använder <a class=\"reference internal\" href=\"/sv/5.2/ref/settings/#std-setting-CSRF_USE_SESSIONS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">CSRF_USE_SESSIONS</span></code></a>.</p>\n</li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.auth.middleware.AuthenticationMiddleware\" title=\"django.contrib.auth.middleware.AuthenticationMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">AuthenticationMiddleware</span></code></a></p>\n<p>Efter <code class=\"docutils literal notranslate\"><span class=\"pre\">SessionMiddleware</span></code>: använder sessionslagring.</p>\n</li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.auth.middleware.LoginRequiredMiddleware\" title=\"django.contrib.auth.middleware.LoginRequiredMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">LoginRequiredMiddleware</span></code></a></p>\n<aside class=\"version-note version-added\" data-version=\"5.1\">\n<p class=\"version-note-title\">New in Django 5.1</p></aside>\n<p>Efter <code class=\"docutils literal notranslate\"><span class=\"pre\">AuthenticationMiddleware</span></code>: använder användarobjekt.</p>\n</li>\n<li><p><a class=\"reference internal\" href=\"#django.contrib.messages.middleware.MessageMiddleware\" title=\"django.contrib.messages.middleware.MessageMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MessageMiddleware</span></code></a></p>\n<p>Efter <code class=\"docutils literal notranslate\"><span class=\"pre\">SessionMiddleware</span></code>: kan använda sessionsbaserad lagring.</p>\n</li>\n<li><p><a class=\"reference internal\" href=\"#django.middleware.cache.FetchFromCacheMiddleware\" title=\"django.middleware.cache.FetchFromCacheMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">FetchFromCacheMiddleware</span></code></a></p>\n<p>Efter alla mellanprogram som ändrar rubriken <code class=\"docutils literal notranslate\"><span class=\"pre\">Vary</span></code>: den rubriken används för att välja ett värde för cachens hash-nyckel.</p>\n</li>\n<li><p><a class=\"reference internal\" href=\"/sv/5.2/ref/contrib/flatpages/#django.contrib.flatpages.middleware.FlatpageFallbackMiddleware\" title=\"django.contrib.flatpages.middleware.FlatpageFallbackMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">FlatpageFallbackMiddleware</span></code></a></p>\n<p>Borde ligga längst ner eftersom det är en sista utväg för mellanprogram.</p>\n</li>\n<li><p><a class=\"reference internal\" href=\"/sv/5.2/ref/contrib/redirects/#django.contrib.redirects.middleware.RedirectFallbackMiddleware\" title=\"django.contrib.redirects.middleware.RedirectFallbackMiddleware\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">RedirectFallbackMiddleware</span></code></a></p>\n<p>Borde ligga längst ner eftersom det är en sista utväg för mellanprogram.</p>\n</li>\n</ol>\n</section>","rootId":"module-django.middleware","toc":[{"title":"Tillgänglig middleware","anchor":"available-middleware","children":[{"title":"Middleware för cacheminne","anchor":"module-django.middleware.cache","children":[]},{"title":"”Vanlig” mellanprogramvara","anchor":"module-django.middleware.common","children":[]},{"title":"GZip mellanprogram","anchor":"module-django.middleware.gzip","children":[]},{"title":"Villkorlig GET-mellanvara","anchor":"module-django.middleware.http","children":[]},{"title":"Middleware för lokal språkdräkt","anchor":"module-django.middleware.locale","children":[]},{"title":"Middleware för meddelanden","anchor":"module-django.contrib.messages.middleware","children":[]},{"title":"Middleware för säkerhet","anchor":"module-django.middleware.security","children":[{"title":"HTTP Strict Transport Security","anchor":"http-strict-transport-security","children":[]},{"title":"Policy för hänvisare","anchor":"referrer-policy","children":[]},{"title":"Policy för öppnare för flera ursprung","anchor":"cross-origin-opener-policy","children":[]},{"title":"X-Content-Type-Options: nosniff","anchor":"x-content-type-options-nosniff","children":[]},{"title":"SSL-omdirigering","anchor":"ssl-redirect","children":[]}]},{"title":"Mellanprogram för sessioner","anchor":"module-django.contrib.sessions.middleware","children":[]},{"title":"Middleware för webbplatsen","anchor":"module-django.contrib.sites.middleware","children":[]},{"title":"Middleware för autentisering","anchor":"module-django.contrib.auth.middleware","children":[]},{"title":"Middleware för CSRF-skydd","anchor":"csrf-protection-middleware","children":[]},{"title":"X-Frame-Options middleware","anchor":"x-frame-options-middleware","children":[]}]},{"title":"Beställning av mellanprogramvara","anchor":"middleware-ordering","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"API-referens","url":"/sv/5.2/ref/"}],"prev":{"docname":"ref/logging","title":"Loggning","url":"/sv/5.2/ref/logging/"},"next":{"docname":"ref/migration-operations","title":"Migrationsverksamhet","url":"/sv/5.2/ref/migration-operations/"},"formats":{"html":"/sv/5.2/ref/middleware/","markdown":"/sv/5.2/ref/middleware.md","json":"/sv/5.2/ref/middleware.json"},"source":"https://github.com/django/django/blob/stable/5.2.x/docs/ref/middleware.txt","official":"https://docs.djangoproject.com/sv/5.2/ref/middleware/","inVersions":["6.1","6.0","5.2"],"inLocales":["en","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}