javascript - 确保远程 ajax 方法调用的安全

标签 javascript ajax security

我编写了一些 JavaScript 代码来在 asp.net 应用程序中执行 ajax 调用。这会触发一个调用 URL 的方法,并在 POST 中发送一些参数。

接收页面处理数据并更新我们的数据库。

我们将向客户提供此代码,以便他们向我们发送每笔交易的结帐流程中所需的数据。

谁能告诉我是否有办法防止未经授权的访问此网址?否则,不道德的开发人员可能会使用此 URL 在不应该的情况下将数据添加到我们的数据库中。

感谢您的指点。


这里的问题是,我将向我们的客户提供代码,他们会将其添加到他们的网站上。因此,我无法选择让他们执行比向其网站添加几行代码更复杂的操作。

代码需要以某种方式安全地向我们的服务器发送数据?

这是不可能的情况还是我需要在处理发生后执行某种审核?

谢谢大家提出的一些好的建议。

最佳答案

您可以使用 SOAP 通过请求传递用户名/密码。 SSL 应该用于加密通过网络传输的数据。这是我们使用的一些代码:

这是一个将保存随请求发送的凭据的类:

Imports System.Web.Services.Protocols
Public Class ServiceCredentials

Inherits SoapHeader

Private _userName As String
Public Property UserName() As String
    Get
        Return _userName
    End Get
    Set(ByVal value As String)
        _userName = value
    End Set
End Property


Private _password As String
Public Property Password() As String
    Get
        Return _password
    End Get
    Set(ByVal value As String)
        _password = value
    End Set
End Property

Public Sub New()

End Sub

Public Sub NewUserInfo(ByVal ServiceUser As String, ByVal ServicePassword As String)
    Me.UserName = ServiceUser
    Me.Password = ServicePassword

End Sub

向 Web 服务的定义添加属性:

    <WebMethod()> _
<SoapHeader("CredentialsHeader")> _
   Function MyWebMethod(ByVal paremetersPassed as String)
   'check permissions here
   If PermissionsValid(CredentialsHeader) then
    'ok!
       .......
   else
       'throw a permission error
  end if
 End Function

然后从那里创建一个函数(在我的示例中为 PermissionsValid)来检查权限:

Function PermissionsValid(byval Credentials as ServiceCredentials) as boolean

    'check Credentials.Username and Credentials.Password here and return a boolean
End Function

这可能看起来像是一堆工作,但是这样,当他们发送请求时,您可以根据数据库或您想要的任何其他内容检查它。您还可以在最后轻松关闭用户名。

更简单的方法是限制允许访问服务页面的 IP 地址。但是,随后您会遇到 IP 地址更改等问题。

顺便说一句,其中大部分内容是在我发布帖子时输入的,因此您可能需要检查代码以确保它可以编译。 :)

关于javascript - 确保远程 ajax 方法调用的安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/503469/

相关文章:

javascript - AngularJS 响应拦截器和 Promise

javascript - 动态网页的SEO

apache - 如何使用 .htaccess 在 apache 上启用 Expect-Ct

python - 对于安全关键型应用程序来说,Django 是一个不错的选择吗?

javascript - 输入字段到文本输出

javascript - 如何保证一个元素有一个特定的高度

javascript - iOS VoiceOver 滚动、内部 div、3 指向上/向下滑动

javascript - 使用 razor asp.net mvc 时获取正确的复选框值

javascript - 如何使 POST Action 与 jquery/ajax Colorbox 一起工作? (里面的 fiddle )

java - 用于在 Java 中生成 key 的 SHA3-512