Я разработал приложение 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, которые отправляют данные на сервер.Веб-приложение управляет учетными записями и профилями пользователей, и пользователи могут получать доступ к веб-страницам в соответствии со своими профилями и привилегиями.
Однако пользователь, обладающий правами доступа и контролирующими веб-браузер, может открыть InspectЗайдите в веб-браузер и найдите эти функции jquery и ajax-запросы и манипулируйте ими для отправки любых данных на сервер.
Как обезопасить эти ajax-запросы?
Единственное решение, которое я видел, этодля шифрования данных JSON, которые отправляются в качестве параметра в запросе ajax.Но даже в этом случае такое шифрование можно увидеть в 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);
}
});
Может ли это быть правильным решением?