如果表单设置为display:none
并且其字段用javascript填充了一些任意html
代码,那么在提交时需要什么样的数据清理/表单安全性?
我正在使用JQuery插件DataTables重新格式化并显示按组小计的数据。除了美中不足之外,它的效果很好:通过TableTools扩展名将表格导出为PDF(或其他形式)会产生原始格式而不是分组和小计格式。在使用DataTables / TableTools作者discussion之后,我得出结论,我需要以不同的方式导出。
我创建了一个按钮,将修改后的表格html而不是原始html提交到使用mpdf创建pdf文件的php脚本。它通过填充“隐形”表单然后提交它来完成此操作。它很棒。
但我担心有一个提交html的隐形表格让我容易被滥用。当输入是任意的时,确保POSTed输入是我期望的最佳方法是什么?
<!--HTML-->
<button name='Make PDF' id='butPDF'/>
<form action='makepdf.php' method='post' name='mpdf'
id='mpdf' style='display:none'>
<textarea name='pdf_html'></textarea>
</form>
//javascript
$(document).ready(function() {
$('.datatable').dataTable( {
//process table into desired format
});
$('button#butPDF').onClick(
function(){
var html= get_my_stuff();//collect up the desired bits
$('textarea[name="pdf_html"]').val(html);
$('form#mpdf).submit();
}
);
});
<?php
include(_MPDF_PATH . "mpdf.php");
$html=$_POST['pdf_html'];
$stylesheet = file_get_contents(LOCAL_INCLUDE.'css/mpdf.css');
$mpdf=new mPDF();
$mpdf->WriteHTML($stylesheet,1,true);
$mpdf->WriteHTML($html, 2,false);
$mpdf->Output('myfile.pdf','D'); //D for download
exit;
?>
答案 0 :(得分:0)
也许添加另一个表单字段并检查是否已填写。提交后检查是否填写,然后您知道该表格已被机器人强行填写。