var result = /* サーバーから取得したデータとか */
$("#dataTable").DataTable({
data: result,
columns: [
{ data: "name" },
{ data: "age" },
{ data: "tel" },
...
]
});
なにも考えずにそのままデータを追加すると、サニタイズされないのでXSSが成立してしまう。
なので、ユーザーから入力されたものを含んだデータはrender
に$.fn.dataTable.render.text()
を設定しておきましょう。
$("#dataTable").DataTable({
data: result,
columns: [
{ data: "name", render: $.fn.dataTable.render.text() },
{ data: "age", render: $.fn.dataTable.render.text() },
{ data: "tel", render: $.fn.dataTable.render.text() },
...
]
});