为什么cakePHP在改变后投掷黑洞"禁用#34;通过jQuery的字段?

时间:2014-05-04 10:33:08

标签: jquery security cakephp blackhole

我有一个带有复选框和2个选择框的表单。我有一个javacript / jQuery函数禁用复选框选中复选框:

function disable(id) {
    if($("#checkbox"+id).is(':checked')){
        $("#selectbox1"+id).prop('disabled',true);
        $("#selectbox2"+id).prop('disabled',true);
    }
    else {
        $("#selectbox1"+id).prop('disabled',false);
        $("#selectbox2"+id).prop('disabled',false);
    }
}

一切运转良好。但是,当我选中复选框并提交表单时,请求被标记为“黑洞”但是,此功能唯一改变的是向<select>标记添加“已禁用”。

有人知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

禁用输入不在POST数据

因此,从服务器的角度来看,选择性地将输入标记为禁用与选择性地将其从表单中删除是相同的 - 这将被检测为形式篡改。

可能的解决方案

要么不要禁用该选择,要么使用unlockField允许使用javascript操纵选择。