В настоящее время я использую 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 Другая идея, которая у меня была, заключается в шифровании / дешифрованиикаждая отдельная строка таблицы, но это, вероятно, будет более сложным и медленным