Добавление уровня шифрования в DataTables.js - PullRequest
0 голосов
/ 24 июня 2019

В настоящее время я использую DataTables.js с источником данных серверного сайта, написанным на PHP.

Сценарий на стороне сервера выдает данные в точном соответствии с требованиями таблиц данных:

{«iTotalDisplayRecords»: «777», «sEcho»: 0, «aaData»: [[row1], [row2], [row3]]}

сейчасЯ хотел бы добавить дополнительный уровень безопасности, зашифровывая ответ от сервера и расшифровывая его после получения таблицами данных.

Мне это нужно, так как я заметил, что некоторые клиенты работают через прокси-сервер HTTPS исодержимое некоторых строк по ошибке блокируется.

Я использую это решение для сценария PHP на стороне сервера, чтобы выдавать зашифрованное содержимое с использованием openssl_encrypt.

Затем на стороне клиента у меня есть:

function datatable_init (source) {
  $.getJSON(source, function(data) {
    decryptedContent = JSON.parse(CryptoJSAesDecrypt(“password”, data));
    oTable = $(‘dtable’).dataTable({
      “bProccesing”: false,
      “bServerSide: true,
      //“sAjaxSource”: source,
      “data”: decryptedContent
      ...
    });

Мне пришлось заменить ”sAjaxSource” на ”data”, так как теперь это другой тип источника данных, который требует другого типа формата данных JSON с данными:

{data: [[row1], [row2], [row3]}

, и я больше не могу передать iTotalDisplayRecords.

Есть ли способ, которым я могу продолжать подавать серверный формат JSON в datatable, но кормить его как локальный объект / массив JS?

PS Другая идея, которая у меня была, заключается в шифровании / дешифрованиикаждая отдельная строка таблицы, но это, вероятно, будет более сложным и медленным

1 Ответ

1 голос
/ 24 июня 2019

Опция ajax.dataSrc кажется полезной, поскольку она дает возможность изменять данные, полученные через ajax, и, таким образом, позволяет вам определить функцию, которая позаботится о расшифровке полученных данных снова. Особенно последний пример, приведенный на справочной странице , выглядит многообещающе, на мой взгляд.

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