==========================Django 1.4.3 release notes==========================*December 10, 2012*Django 1.4.3 addresses two security issues present in previous Django releasesin the 1.4 series.Please be aware that this security release is slightly different from previousones. Both issues addressed here have been dealt with in prior security updatesto Django. In one case, we have received ongoing reports of problems, and inthe other we've chosen to take further steps to tighten up Django's code inresponse to independent discovery of potential problems from multiple sources.Host header poisoning=====================Several earlier Django security releases focused on the issue of poisoning theHTTP Host header, causing Django to generate URLs pointing to arbitrary,potentially-malicious domains.In response to further input received and reports of continuing issuesfollowing the previous release, we're taking additional steps to tighten Hostheader validation. Rather than attempt to accommodate all features HTTPsupports here, Django's Host header validation attempts to support a smaller,but far more common, subset:* Hostnames must consist of characters ``[A-Za-z0-9]`` plus hyphen ('-') or dot('.').* IP addresses -- both IPv4 and IPv6 -- are permitted.* Port, if specified, is numeric.Any deviation from this will now be rejected, raising the exception:exc:`django.core.exceptions.SuspiciousOperation`.Redirect poisoning==================Also following up on a previous issue: in July of this year, we made changes toDjango's HTTP redirect classes, performing additional validation of the schemeof the URL to redirect to (since, both within Django's own suppliedapplications and many third-party applications, accepting a user-suppliedredirect target is a common pattern).Since then, two independent audits of the code turned up further potentialproblems. So, similar to the Host-header issue, we are taking steps to providetighter validation in response to reported problems (primarily with third-partyapplications, but to a certain extent also within Django itself). This comes intwo parts:1. A new utility function, ``django.utils.http.is_safe_url``, is added; thisfunction takes a URL and a hostname, and checks that the URL is eitherrelative, or if absolute matches the supplied hostname. This function isintended for use whenever user-supplied redirect targets are accepted, toensure that such redirects cannot lead to arbitrary third-party sites.2. All of Django's own built-in views -- primarily in the authentication system-- which allow user-supplied redirect targets now use ``is_safe_url`` tovalidate the supplied URL.