Skip to main content

Easy and Simple method to obfuscate and deobfuscate your Django URLs.

Project description

url_obfuscated

Easy and Simple method to obfuscate and deobfuscate your Django URLs. Works with both normal urls as well as those with params

Quick start

Install using pip or easy_install

$ pip install url-obfuscated

$ easy_install url-obfuscated

Add "url_obfuscate" to your INSTALLED_APPS setting like this:

INSTALLED_APPS = (
    ...
    'url_obfuscated',
)

Usage

To obfuscate Django's URLs, modify the URL declaration in the urls.py file by replacing the regex definition with the funcion generate_url_pattern, as follows:

from url_obfuscated.helpers import generate_url_pattern
.....

urlpatterns = [
    url(generate_url_pattern('/'), home, name='home'),
    url(generate_url_pattern('obfuscated_link', params=['(?P<name>[^/]+)']), obfuscated_link, name='obfuscated_link'),
    url(generate_url_pattern('optional_param', params=['(?:(?P<param>[^/]+)/)?']), optional_param, name='optional_param'),
]

For the home URL, use / path. To include params in the URL, declare them in the desired order inside the params attribute. When obfuscating a URL with parameters, it is necessary to use the deobfuscate decorator to recover the original value of the parameter.

from url_obfuscated.decorators import deobfuscate
...

@deobfuscate
def obfuscated_link(request, name):
    return render(request, 'obfuscate_result.html', { 'name': name })

When declaring URLs with parameters inside templates, use the obfuscate template tag, as follows:

{% load obfuscate_tags %}
...
<p><a href="{% url 'obfuscated_link' 'Dan Brown'|obfuscate %}">Obfuscated link: {% url 'obfuscated_link' 'Dan'|obfuscate %}</a></p>
...

You can also obfuscate any value from inside a view, use the obfuscate function, as follows:

from url_obfuscated.helpers import obfuscate
...

def home(request):
    links = list()
    for i in range(10):
        links.append(obfuscate('Name %d' % (i+1)))
    return render(request, 'index.html', { 'links': links })

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

url-obfuscated-1.0.0.tar.gz (10.4 kB view details)

Uploaded Source

Built Distribution

url_obfuscated-1.0.0-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

Details for the file url-obfuscated-1.0.0.tar.gz.

File metadata

  • Download URL: url-obfuscated-1.0.0.tar.gz
  • Upload date:
  • Size: 10.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.11.6

File hashes

Hashes for url-obfuscated-1.0.0.tar.gz
Algorithm Hash digest
SHA256 4d1030ed767b3855d1a4c9920bf570acc15ce972ede96ecfcd7acd9b155c7c0e
MD5 18e9d0a75310ddc6a4165357b23b61ab
BLAKE2b-256 e00aa44e7a1bfb867b2d26a60275d88c0c10df5dbde32e0266004dfed4eb0e43

See more details on using hashes here.

File details

Details for the file url_obfuscated-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: url_obfuscated-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 12.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.11.6

File hashes

Hashes for url_obfuscated-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 62338aa1c293442ae28cdb533fd60377af8fd47cfb4b24ee61eb15bb4438e159
MD5 db4afdafa360b0072e077c2363721840
BLAKE2b-256 076664bff76a2323dcc6c83edb03f2e0df509757112833dab6dd9bb2e8fb7445

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page