我正在改变
的值<span></span>
使用firefox Firebug然后使用
$("span").html();
但它获取了span的更改值,而不是加载页面时生成的原始值。
如何通过firebug获取范围的原始值而不是更改的值?
我只是出于安全目的而要求这个,因为我在ajax中使用这个值来保存到数据库,但是现在,可以通过使用firebug或chrome上的元素检查的坏心用户轻松修改它。
我这样做是否正确?
答案 0 :(得分:1)
发送到客户端的任何内容都可以更改,您不能依赖前端的安全性。您必须确保您的服务器端代码是安全的。
即使您要阻止用户更改该范围的值,他们仍然可以复制您的AJAX请求并更改参数以将任何内容发送到它将接受的服务器。您需要清理接收端的用户输入并过滤掉您不想要的任何内容。
如果您正在使用SQL进行数据库事务,那么您应该阅读有关如何避免SQL注入的信息。正如您所提到的,用户可能会尝试将SQL发送到您的数据库,这可能是有害的。这是关于这个主题的一个有趣的article。
答案 1 :(得分:1)
如果您担心价值变化,则需要在提交前将值与原始值进行比较。
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');
}
});
});