Как я защищаю свой JsonResult, ПОЛУЧАЮТ вызовы?

Как то так?

var res = {
  "JUCS": {
    "V": 0,
    "D": 0
  },

  "LSB": {
    "V": 0,
    "D": 0
  },
  "TUC": {
    "V": 0,
    "D": 0
  },
}
document.querySelectorAll("table td:nth-of-type(5)").forEach(function(cell) {
  var text = cell.textContent;
  var vd = text.split(",")[0];
  var team = cell.nextElementSibling.textContent;
  if ("VD".indexOf(vd) > -1) res[team][vd]++
});
var v=0, d=0;
for (team in res) {
  var V = res[team]["V"], D = res[team]["D"];
  v += V
  d += D
  document.getElementById(team+"_V").textContent = V;
  document.getElementById(team+"_D").textContent = D;
}
document.getElementById("total_V").textContent = v;
document.getElementById("total_D").textContent = d;
<div id="div_resultados_gerais">
  <table id="table_resultados_gerais">
    <thead>
      <th colspan="3">Total</th>
      <th colspan="3">JUCS</th>
      <th colspan="3">LSB</th>
      <th colspan="3">TUC</th>
    </thead>
    <tbody id="tb">
      <tr>
        <!-- TOTAL -->
        <td id="total_V" class="d">10</td>
        <td class="separador">-</td>
        <td id="total_D" class="e">7</td>

        <!-- JUCS -->
        <td id="JUCS_V" class="d">v</td>
        <td class="separador">-</td>
        <td id="JUCS_D" class="e">d</td>

        <!-- LSB -->
        <td id="LSB_V" class="d">5</td>
        <td class="separador">-</td>
        <td id="LSB_D" class="e">6</td>

        <!-- TUC -->
        <td id="TUC_V" class="d">5</td>
        <td class="separador">-</td>
        <td id="TUC_D" class="e">1</td>
      </tr>

    </tbody>
  </table>
</div>


<div id="div_calendario_jogos">
  <table id="table_calendario_jogos">
    <tbody>
      <tr id="table_header">
        <th>Date</th>
        <th>Time</th>
        <th>Season</th>
        <th colspan="2">Oponente</th>
        <th>Placar</th>
        <th>Competition</th>
      </tr>
    </tbody>

    <tbody class="tbody_calendario_jogos">
      <tr>
        <td>11/03/2018</td>
        <td>15:00h</td>
        <td>Regular</td>
        <td>BMC</td>
        <td>V, 52-42</td>
        <td>LSB</td>
      </tr>

      <tr>
        <td>08/04/2018</td>
        <td>12:30h</td>
        <td>Regular</td>
        <td>Drink Team</td>
        <td>D, 59-61</td>
        <td>LSB</td>
      </tr>

      <tr>
        <td>22/04/2018</td>
        <td>10:30h</td>
        <td>Regular</td>
        <td>Nitcheroy Ballers</td>
        <td>V, 53-40</td>
        <td>TUC</td>
      </tr>

      <tr>
        <td>28/04/2018</td>
        <td>12:00h</td>
        <td>Regular</td>
        <td>Nacional</td>
        <td>V, 50-34</td>
        <td>LSB</td>
      </tr>

      <tr>
        <td>06/05/2018</td>
        <td>14:00h</td>
        <td>Regular</td>
        <td>VR Ballers</td>
        <td>D, 45-74</td>
        <td>LSB</td>
      </tr>


      <tr>
        <td>11/03/2018</td>
        <td>15:00h</td>
        <td>Regular</td>
        <td>BMC</td>
        <td>V, 52-42</td>
        <td>TUC</td>
      </tr>

      <tr>
        <td>08/04/2018</td>
        <td>12:30h</td>
        <td>Regular</td>
        <td>Drink Team</td>
        <td>D, 59-61</td>
        <td>LSB</td>
      </tr>

      <tr>
        <td>22/04/2018</td>
        <td>10:30h</td>
        <td>Regular</td>
        <td>Nitcheroy Ballers</td>
        <td>V, 53-40</td>
        <td>TUC</td>
      </tr>

      <tr>
        <td>28/04/2018</td>
        <td>12:00h</td>
        <td>Regular</td>
        <td>Nacional</td>
        <td>V, 50-34</td>
        <td>JUCS</td>
      </tr>

      <tr>
        <td>06/05/2018</td>
        <td>14:00h</td>
        <td>Regular</td>
        <td>VR Ballers</td>
        <td>D, 45-74</td>
        <td>JUCS</td>
      </tr>
    </tbody>
  </table>
</div>

5
задан Community 23 May 2017 в 11:47
поделиться

3 ответа

Можно использовать AntiForgeryToken, объединенный с некоторой пользовательской логикой. Создание маркера AntiForgery на сервере является тем же, но по умолчанию значение не включено в Ваш XmlHttpRequest.

Значение этого маркера находится в HTTP только cookie "__ RequestVerificationToken" и должно также быть в данных формы, отправленных на сервер. Поэтому включайте пару ключ/значение в свой XmlHttpRequest и используйте ValidateAntiForgeryToken - приписывают на Вашем контроллере

Править:

Сегодня я пытался использовать AntiForgeryToken для запросов Ajax сам, и он хорошо работает. Просто используйте следующий JavaScript:

$.post('my_url',  $.getAntiForgeryTokenString(), function() { ... });

$.getAntiForgeryTokenString = function() {
    return $(document.getElementsByName("__RequestVerificationToken")).fieldSerialize();
};

На стороне сервера Вы не должны изменяться, Ваш код - просто используют атрибут ValidateAntiForgeryToken-для Вашего действия.

Надеюсь, это поможет

8
ответ дан 13 December 2019 в 22:17
поделиться

В первую очередь, почему не использовать $ .post (URL, данные, обратный вызов, 'json') вместо getJSON? И поскольку kleolb02 сказал, можно увеличить стоимость от cookie до данных сообщения с помощью плагина cookie - {__ RequestVerificationToken: $ .cookie (' __ RequestVerificationToken')}

1
ответ дан 13 December 2019 в 22:17
поделиться

Можно сделать что-то подобное как анти-методы XSRF. Просто генерируйте некоторый идентификатор, вставляют его в JavaScript и когда вызовы пользователя Ваш URL JSON, имейте тот URL, включают сгенерированный идентификатор и проверку, если это там.

Защита против XSRF также использует sessionID в качестве ключа, это не останавливает пользователя, выполняющего его с другого веб-сайта для его собственной учетной записи все же.

Некоторый хеш на основе сессии и время мог бы добиться цели. Конечно, если пользователь копирует значение с JS, он может все еще выполнить его от другого местоположения, но у Вас может быть то значение, истекают каждый x минуты. Другая опция состоит в том, чтобы установить cookie с JS и считать его серверная сторона.

Надежда это дает Вам некоторое представление для запущения Вас.

0
ответ дан 13 December 2019 в 22:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: