42 lines
1.8 KiB
HTML
42 lines
1.8 KiB
HTML
{% extends 'base.html' %}
|
|
|
|
{% block content %}
|
|
<h1>Démonstration OWASP A01: Broken Access Control (IDOR)</h1>
|
|
|
|
{% if user.is_authenticated %}
|
|
<p>Bienvenue, {{ user.username }}.</p>
|
|
|
|
{% if user.profile %}
|
|
<h2>Testez l'accès à votre profil</h2>
|
|
<p>Les deux liens ci-dessous pointent vers votre propre profil (ID: {{ user.profile.pk }}). Essayez ensuite de changer l'ID dans l'URL pour voir le profil de l'autre utilisateur.</p>
|
|
|
|
<div class="alert-fail">
|
|
<h3>Lien VULNÉRABLE</h3>
|
|
<p>Cette vue ne vérifie pas qui vous êtes. Elle vous laissera voir le profil d'un autre utilisateur si vous changez l'ID dans l'URL.</p>
|
|
<a href="{% url 'profiles:vulnerable_detail' pk=user.profile.pk %}">
|
|
Voir mon profil (VULNÉRABLE)
|
|
</a>
|
|
<br>
|
|
<small><code>/profile/vulnerable/{{ user.profile.pk }}/</code></small>
|
|
</div>
|
|
|
|
<br>
|
|
|
|
<div class="alert-ok">
|
|
<h3>Lien SÉCURISÉ</h3>
|
|
<p>Cette vue vérifie que vous êtes bien le propriétaire du profil. Elle bloquera (403 Forbidden) toute tentative de voir le profil d'un autre.</p>
|
|
<a href="{% url 'profiles:secure_detail' pk=user.profile.pk %}">
|
|
Voir mon profil (SÉCURISÉ)
|
|
</a>
|
|
<br>
|
|
<small><code>/profile/secure/{{ user.profile.pk }}/</code></small>
|
|
</div>
|
|
{% else %}
|
|
<p>Votre profil n'a pas encore été créé. (Cela ne devrait pas arriver, vérifiez les signaux)</p>
|
|
{% endif %}
|
|
|
|
{% else %}
|
|
<p>Veuillez vous connecter pour voir la démonstration.</p>
|
|
<a href="{% url 'login' %}?next=/">Se connecter</a>
|
|
{% endif %}
|
|
{% endblock %} |