Datatables服务器端处理绘制参数

时间:2016-03-28 19:32:52

标签: datatables

在数据表绘制参数documentation中说

  

强烈建议出于安全原因您将此参数转换为整数,而不是简单地回显客户端在draw参数中发送的内容,以防止跨站点脚本(XSS) )攻击

如何将参数强制转换为int有助于防止Cross Site Scripting。?

1 个答案:

答案 0 :(得分:0)

你不应该对它做任何事情:-)。在客户端,它由DataTables自动处理。在服务器端,您所做的只是转换为int,然后将其发送回去。此示例显示了服务器端处理的基本初始化:

http://datatables.net/examples/data_sources/server_side.html

和其他攻击DataTables表示两种防止攻击的方法。

<强>预防

有两种方法可以阻止此类攻击在您的应用程序中取得成功:

  1. 禁止提交任何有害数据
  2. 使用渲染功能对所有不受信任的输出进行编码。
  3. 对于第一个选项,服务器端脚本将主动阻止包含有害数据的所有数据写入(即输入)。您可以选择简单地禁止包含任何HTML的所有数据,或者使用HTML解析器来允许&#34; safe&#34;标签。如果采用这种方法,强烈建议您使用已知且经过验证的安全库 - 不要自己编写!

    使用渲染功能的第二个选项将在显示数据(即输出)时防止攻击。 DataTables有两个内置的渲染函数,可用于防止XSS攻击; $.fn.dataTable.render.text$.fn.dataTable.render.number

    更多信息:https://www.datatables.net/manual/security