Jquery 使用QueryString和ajaxget后的Web应用程序安全问题

Jquery 使用QueryString和ajaxget后的Web应用程序安全问题,jquery,ajax,Jquery,Ajax,我已经为一个客房预订web应用程序编写了以下代码。然而,由于我在这方面是新手,我不能完全理解代码是否“安全” 所以我的问题是:在我从QueryString接收到参数后,以下代码是否会被用户操纵,例如Google Chrome的Inspect元素,进入学生使用其他人凭证的状态 请假设我将收到加密的QueryString,并且我假设我可以在加载视图之前在控制器中解密它 观点: <script> var scheduler = $("#scheduler4").data("kend

我已经为一个客房预订web应用程序编写了以下代码。然而,由于我在这方面是新手,我不能完全理解代码是否“安全”

所以我的问题是:在我从QueryString接收到参数后,以下代码是否会被用户操纵,例如Google Chrome的Inspect元素,进入学生使用其他人凭证的状态

请假设我将收到加密的QueryString,并且我假设我可以在加载视图之前在控制器中解密它

观点:

<script>
    var scheduler = $("#scheduler4").data("kendoScheduler");

    /* Get QueryString and search for student in external URL */
    $(document).ready(function () {

        var url = document.URL;

        var nameIndex = url.indexOf("name=");
        var name;

        var emailIndex = url.indexOf("email=");
        var email;


        if (emailIndex > -1 && staffIndex == -1) {

            name = url.substr((nameIndex + 5), emailIndex - (nameIndex + 5 + 1));

            email = url.substr((emailIndex + 6));
            email = email.substr(0, (email.length - 4)) + "@@email.com";

            /* Check student directory to see if this email exists */
            var url = '@Url.Action("CheckStudentDirectory", "Home")';
            // alert(email);
            var data = { name: name, email: email };

            $(".loading-overlay").show();
            $.get(url, data)
                .done(function (response, status, jqxhr) {

                        if (response.exists === true) {

                            $.ajax({
                                type: 'GET',
                                url: '@Url.Action("StudentScheduler", "Home")',
                                success: function (data) {
                                    $('#incomingscheduler').html(data);
                                    }
                                });
                        }
                .fail(function (jqxhr, status, errorThrown) {

                        /* problem with XML file at CheckDirectory */
                        alert("Something went wrong with authentication");
                .complete(function () {
                    $(".loading-overlay").hide();
                    });
                }
            });
</script>

<body>

    <!-- Scheduler-->
    <div id="incomingscheduler">
        <!-- Schedulers will be loaded in here -->
    </div>

</body>

var scheduler=$(“#scheduler4”).data(“kendoScheduler”);
/*获取查询字符串并在外部URL中搜索学生*/
$(文档).ready(函数(){
var url=document.url;
var nameIndex=url.indexOf(“name=”);
变量名;
var emailIndex=url.indexOf(“email=”);
var电子邮件;
如果(emailIndex>-1&&staffIndex==-1){
name=url.substr((nameIndex+5),emailIndex-(nameIndex+5+1));
email=url.substr((emailIndex+6));
email=email.substr(0,(email.length-4))+“@@email.com”;
/*检查学生目录以查看此电子邮件是否存在*/
var url='@url.Action(“CheckStudentDirectory”,“Home”);
//警报(电子邮件);
var data={name:name,email:email};
$(“.loading overlay”).show();
$.get(url、数据)
.done(功能(响应、状态、jqxhr){
if(response.exists==true){
$.ajax({
键入:“GET”,
url:'@url.Action(“StudentScheduler”,“Home”),
成功:功能(数据){
$('#incomingscheduler').html(数据);
}
});
}
.fail(函数(jqxhr、状态、错误抛出){
/*CheckDirectory中的XML文件有问题*/
警报(“身份验证出现问题”);
.完成(功能(){
$(“.loading overlay”).hide();
});
}
});

在控制器级别执行此操作..如“

此操作自动从查询字符串中获取名称和电子邮件,但查询字符串参数名称和操作的参数名称应相同

用户是否可以操纵以下代码…使其进入学生使用其他人凭据的状态

是--通过查询字符串或表单post发送到应用程序的任何参数都可以由用户进行操作。加密不会保护您免受未经授权的访问

始终验证服务器上的用户输入。您需要在服务器上验证经过身份验证的用户是否真正拥有
名称
电子邮件
或任何其他敏感资源


此外,.

我可以执行以下操作吗?(1)接收加密的查询字符串(2)通过AJAX调用将其转到控制器进行解密(3)在控制器中保存电子邮件和用户姓名(4)返回视图(5)在创建新预订期间,检查服务器端的电子邮件和名称。假设一个用户为另一个用户复制了加密的querystring。您如何知道它是合法的?我无法知道它,但从表面上看,it部门不想为我创建Windows服务来进行正确的身份验证。换句话说,这是我的但最后,我想,如果我创建的查询字符串在每天结束时过期,那么它可能会增加情况的安全性。
public ActionResult Test(string email,string name)
{
     //do your stuff
}