私はサーバー側の処理でdataTableを持っていますが、誰かがajax PHPファイルにアクセスするとすべてのコンテンツを読むことができるので、ajaxコールを保護する方法がわかりません。セキュアAjaxコール
これは私のjQueryのです:
$(document).ready(function() {
$('#netflow').DataTable({
aaSorting: [[ 5, "desc" ]],
responsive: {
details: {
renderer: function (api, rowIdx) {
var data = api.cells(rowIdx, ':hidden').eq(0).map(function (cell) {
var header = $(api.column(cell.column).header());
return '<p style="color:#00A">'+header.text()+' : '+api.cell(cell).data()+'</p>'; // changing details mark up.
}).toArray().join('');
return data ? $('<table/>').append(data) : false;
}
}
},
processing: true,
serverSide: true,
ajax: "/adm/includes/netflow_processing.php",
});
var oTable = $('#netflow').dataTable();
var table = $('#netflow').DataTable();
$('#netflow_filter input').unbind();
$('#netflow_filter input').bind('keyup', function(e) {
if(e.keyCode == 13) {
oTable.fnFilter(this.value);
}
});
// Añadir filtro para cad acelda
$('#netflow tfoot th').each(function (i) {
$(this).html('<input type="text"/style = "width: 100%; " placeholder="Filtra...">');
});
// Aplicar filtro al introducir en cada celda
table.columns().eq(0).each(function (colIdx) {
$('input', table.column(colIdx).footer()).on('keyup change', function() {
table
.column(colIdx)
.search(this.value)
.draw();
});
});
});
そして、これは、Ajaxスクリプトです:
<?php
$table = 'netflow';
$primaryKey = 'id';
$columns = array(
array('db' => 'flow_src', 'dt' => 0),
array('db' => 'flow_dst', 'dt' => 1),
array('db' => 'flow_proto', 'dt' => 2),
array('db' => 'out_packets', 'dt' => 3),
array('db' => 'in_packets', 'dt' => 4),
array('db' => 'flow_start', 'dt' => 5)
);
$sql_details = array(
'user' => '6g43tfr3',
'pass' => 'XXXXXXXXX',
'db' => 'DBNAME',
'host' => 'bbdd.localdomain'
);
require('ssp.class.php');
echo json_encode(
SSP::simple($_GET, $sql_details, $table, $primaryKey, $columns)
);
どのように私は、ハッシュ/トークン要求を行うことができますか?
単純で機能的です。どうもありがとうございます!。 –
@ RaduRaduでは、HTTP_REFERERを簡単に変更することができます。たとえば、データマイニングなどのときに攻撃者が最初に変更するものです。 –
@ Gyrocode.com - そのような主張は本当に概念の証明が必要です:) HTTP_REFERERはブラウザ内から変更することはできません。たとえば、AJAXで偽のヘッダーを送信するなどして変更することはできません。 HTTP_REFERERをCURLなどで "偽装"することができます。つまり、ソケットで実行されている特定の目的専用の専用スクリプトを作成することにより、 "攻撃者"はHTTP_REFERERを含める必要があることを知る必要があります。受理されます。 – davidkonrad