在firebug中更改值,并使用jQuery html()获取



我正在改变a

的值
<span></span>

使用firefox Firebug,然后使用

$("span").html();

但是它得到的是span的改变值,而不是加载页面时生成的原始值。

如何获得span的原始值,而不是被firebug更改的值?

我问这个只是为了安全的目的,因为我在ajax中使用这个值来保存到数据库,但现在,它可以很容易地被一个恶意的用户使用firebug或元素检查chrome修改。

我这样做对吗?

发送到客户端的任何内容都可以更改,您不能依赖于前端的安全性。你必须确保你的服务器端代码是安全的。

即使您要阻止用户更改该span的值,他们仍然可以复制您的AJAX请求并更改参数以向服务器发送它将接受的任何内容。您需要在接收端清理用户输入,并过滤掉您不想要的任何内容。

如果你在数据库事务中使用SQL,你应该阅读一下如何避免SQL注入。正如您提到的,用户可能会尝试向您的数据库发送SQL,这可能是有害的。这里有一篇关于这个主题的有趣文章。

如果您担心值的变化,您需要在提交之前将值与原始值进行比较。

var spanMatches = function(original) {
    span === "Original Span" ? true : false;
};
$(document).ready(function(){
    // cache original value on domready
    var original =  $('span').html();
    // span value gets changed
    $('span').html('new value');
    $('form').submit(function(){
        if(spanMatches(original)){
            $.ajax(function(){
                // make sure you include `original` in data sent upstream
            });
        } else {
            alert('value has been changed');
        }
    });
});

最新更新