我按照这种模式开发了一个ASP.NET MVC应用程序:
<div class="content-header row h-100 ">
<div >
<button type="button" id="btnOK" >
OK
</button>
<div id='ShowResults'>
</div>
</div>
</div>
<script>
$(function () {
$('#btnOK').unbind('click').on('click', SaveDataInServer);
});
SaveDataInServer = function () {
var data = { 'd1': 1, 'd2': 2};
$('#ShowResults').empty();
$.ajax({
url: '@Url.Action("actionSaveData", "myController", new { area= "myArea" })',
type: 'GET',
cache: false,
data: data,
success: function (data) {
$(#ShowResults).html(data);
}
});
}
</script>
在许多视图中,有一些jquery函数包含ajax请求,这些请求将数据发送到服务器。 该Web应用程序管理用户帐户和个人资料,用户可以根据他们的个人资料和权限访问网页。
但是,具有适当权限并具有Web浏览器控制权的用户可以在Web浏览器中打开Inspect Panel,并找到这些jquery功能和ajax请求,并对其进行操作以将任何数据发送到服务器。
如何保护那些ajax请求?
我能看到的唯一解决方案是对ajax请求中作为参数发送的JSON数据进行加密。 但是即使这样,也可以在Inspect Panel中看到该加密。
类似的东西:
var d1 = Encrypt('1');
var d2 = Encrypt('2');
var data = { 'd1': d1, 'd2': d2};
$.ajax({
url: '@Url.Action("actionSaveData", "myController", new { area= "myArea" })',
type: 'GET',
cache: false,
data: data,
success: function (data) {
$(#ShowResults).html(data);
}
});
那是正确的解决方案吗?