繁体   English   中英

如何在 ajax 请求中编码参数?

[英]How to encode parameter in ajax request?

我有一个 select 字段,

<form:form id="mediaForm" method="post" role="form">
 <table>
 <tr id="state" style="display: none;">     
                <td>
                    <form:select path="sCode" id="sCode"
                        onchange="getAllLists(this.id,'${contextPath}/main/getList.do','dCode','aCode')">
                        <form:option value="" label="--- Select ---" />
                        <form:options items="${state}" />
                    </form:select>
                </td>                            
        </tr>
        </table>
        </form:form>

单击此字段时,将调用另一个列表。 现在,当我拦截此请求并将 state 的值(例如,由 user = 03 选择)更改为 04 时,不会显示错误。 我想编码var val = $('#' + new_id).val(); 并在 controller 上对其进行解码,这样没有人可以在两者之间进行更改? 请建议。 尝试 encodeURIComponent 但它编码 url 并且我想编码值 state = 01;

function getAllLists(new_id, url, second_name,
        image_value) {
    var val = $('#' + new_id).val();

    $.ajax({
                url : url,
                dataType : 'json',
                data : {
                    state : val
                },
                success : function(data) {
                    $('#' + image_value).empty();
                    $('#' + image_value)
                            .append(new Option('Select...', ''));
                    $.each(data.list, function(arrID, group) {
                                $('#' + image_value).append(new Option(
                                                group.desc, group.code));

                            });
                    $('#' + image_value).val("A");

                }
            });
}

某种参数污染攻击。

如果我理解得很好:您担心的是安全问题。

HTTPS 已经在做加密工作了。

如果你不使用HTTPS,在没有第三方提供密钥的情况下客户端加密的问题是这种方式不是私有的,因此不安全。

每个人都可以访问服务器给客户端的代码。 这意味着可以看到服务器提供的加密密钥,因此,中间的人只需要使用他们希望您请求的值来复制加密。

最终,您可以尝试在客户端第一次连接到服务器时将加密密钥提供给客户端,然后在整个连接中使用它。 它减轻了问题,但并没有消除它。

密码提示:加盐的 sha256 对我来说听起来不错。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM