SQL-инъекция в Django Update Radiolist - Burp Suite - PullRequest
0 голосов
/ 29 сентября 2019

Я новичок в программировании.

Я разработал веб-приложение с использованием среды Python django.У меня есть конкретное представление, которое обновляет статус конкретной строки в базе данных с активной на неактивную и наоборот.и я использовал html формы (Radiolist) и шаблоны django на странице hmtl для создания внешнего интерфейса.

Я использовал ORM - метод обновления Django для обновления полей соответственно.Но когда я запускаю аудит безопасности с помощью инструмента аудита безопасности Vega, я получаю предупреждение о возможном внедрении sql.Я пробовал все, но эта ошибка, похоже, не идет

это HTML-код


  <form class="" action = "{% url 'CHApp_new:update_statement' %}" method="post">
      {% csrf_token %}
      <table class="table table-striped table-dark two" align="center">

      {% for x in sobjects %}
        <tr>
          <td>{{forloop.counter}}</td>
          <td>{{x.statement}}</td>
          {% if x.status == 'y' %}
          <td>Active</td>
          {% else %}
          {% if x.status == 'n' %}
          <td>Inactive</td>
          {% endif %}
          {% endif %}
          <td style= "text-align:center"><input id= "{{forloop.counter}}" type="checkbox" name= "{{forloop.counter}}" value={{x.id}}></td>
          <input type="hidden" name="radiolist" value="{{forloop.counter}}">
        </tr>
      {% endfor %}
      </table>
      <table align = "center">
        <tr>
          <td><input type="submit" class = "btn btn-primary"  name="Update" value="Cycle Activate/Deactivate"></td>
        </tr>
      </table>
      </form>

, и это представление Django.

def update_statement (запрос): sobjects = HomePage.objects.all ()

if request.method == 'POST':
    ans_list = [request.POST.get(x) for x in request.POST.getlist('radiolist')]
    ans_list = [x for x in ans_list if x is not None]
    for x in ans_list:
        a = HomePage.objects.get(id = x)
        if a.status == 'y':
            a.status = 'n'
        elif a.status == 'n':
            a.status = 'y'
        else:
            a.status='n'
        a.save(update_fields = ['status'])

mydict = {'sobjects':sobjects}
return render(request, 'CHApp/update_statement.html', context = mydict)

это ошибка, которую я получаю, говоря, что возможна инъекция sql.Краткая информация о классификации Сообщение об ошибке Ресурс / CHApp / update_statement / Параметр radiolist Метод обнаружения ПОСТ Тип XPath 2.0 Слепые Инъекции Дифференциальные Проверки высокого риска

Запрос POST / CHApp / update_statement / [csrfmiddlewaretoken = 8hycyGnPiGzsumAxzIS2B6TBigXvXfApNOW8nlqAQQThC81oSYpm2aJFkpfudidR 1 = на radiolist = 1 2= на радиолисте = 2 3 = на радиолисте = 3 4 = на радиолисте = e "или 1 экв. 1 или" a "=" a 5 = на радиолисте = 5 6 = на радиолисте = 6 Обновление = цикл активировать / деактивировать]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...