Jquery Ajax的安全问题

时间:2016-08-04 06:52:42

标签: javascript jquery asp.net ajax security

我一直在几个项目中使用Jquery Ajax调用。我想知道这些对服务器的调用是否不安全?考虑以下内容,

   $.ajax({
            method: "POST",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            url: "/CMSWebParts/vline/Serviceupdates/ServiceUpdate.aspx/EditPlannedDisruption",
            data: '{"id":"' + id + '"}',
            success: function (res) {
            $("#hdnOverrideId_PlannedDisruption").val(res.d.PlannedDisruptionId);

                $("#edTime2_PublishPlanned").val(res.d.pubtime2);
                if (res.d.Proposed) {
                    $("#chkProposed").prop("checked", true);
                }

                if (res.d.Active) {
                    $("#chkActive").prop("checked", true);
                }

                if (res.d.LinkedOverrideId || res.d.LinkedOverrideId != "null") {
                    $("#btnlinkedOverride").hide();
                    $("#linkedOverride").hide();
                }

            }

        })

如果用户检查浏览器源,他可以看到整个代码,包括服务器方法名称和参数名称,它为黑客提供了机会。

我在这里缺少任何安全措施吗?

2 个答案:

答案 0 :(得分:3)

嗯,您唯一需要担心的是加密发送到服务器的数据以及从服务器收到的数据。您无法在浏览器上进行任何代码检查。

让我解释一下。当有人访问您的网页时,他们已经拥有您在浏览器中工作的所有内容。你无能为力。您可以尝试让它变得更加艰巨(缩小)但接受某人可以访问您的客户端代码。

真正的问题是通过电线的数据。看,如果黑客在他的浏览器中检查过代码,他就不会获得很多有用的信息(除非你自己犯了一些明显的错误)。当然,他们可以看到请求的去向以及各种端点的参数。但是,如果没有适当的身份验证和授权,正确安全的后端甚至不会让他们向这些端点发送请求。

黑客也有兴趣捕获其他人的详细信息。一个非常明显的例子是用户名和密码。如果您在没有正确加密的情况下通过网络发送此数据,那么 就是真正的问题。

简而言之,您可以做很多事情来保护在浏览器上运行的源代码。感兴趣的一方已经拥有他们需要的任何东西,而JS也不会混淆。您应该对保护通过网络传输的数据更感兴趣。

答案 1 :(得分:1)

  

如果用户检查浏览器源,他可以看到整个代码   它包括服务器方法名称和参数名称   黑客的机会。

所以,是的,任何攻击者都可以从外部角度了解您的应用程序是如何工作的。

这就是为什么您应该确保您的应用程序是安全的,尽管任何用户都可以使用您的应用程序服务器与浏览器通信的方式。

您需要阻止:

  • 攻击者可以访问您的服务器,尽管知道传递了哪些URL,方法和参数。
  • 攻击者通过您的应用程序(例如存储的XSS)定位应用程序的其他用户。
  • 攻击者通过浏览器定位应用程序的其他用户(例如反映的XSS,CSRF和其他跨域攻击 - 请参阅Same Origin Policy)。
  • 攻击者滥用在其帐户上授予他们的权限。
  • 无数其他攻击媒介被利用。
  

我在这里缺少任何安全措施吗?

查看OWASP Top 10,了解应该保护您的申请的漏洞的起点。