jquery - 为什么 cakePHP 在通过 jQuery 更改 "disabled"字段后会抛出黑洞?

标签 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>标签。

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

最佳答案

禁用的输入不在 POST 数据中

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

可能的解决方案

要么禁用该选择,或者使用unlockField允许使用 javascript 操作选择。

关于jquery - 为什么 cakePHP 在通过 jQuery 更改 "disabled"字段后会抛出黑洞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23455188/

相关文章:

html - 如何提高不需要登录的在线表单的安全性?

java - 签名 jar 篡改验证

php - 导入 js 文件 CakePHP src 标签丢失

cakephp - cakephp中递归的含义是什么?

javascript - 使用JQuery将html tr标签转换为大写以进行字符串比较

jquery - Html 输入在选择时隐藏文本,如果将其留空则显示

javascript - 元素是否显示在div中

javascript - jQuery 发布到 node.js -> 不存在 request.body

security - 在启用 SSL 的网站上使用 JWT 代替 Cookie

php - 如何对保留其初始状态的数组进行排序