当前位置: 首页 > 面试题库 >

保护远程ajax方法调用

夹谷信鸿
2023-03-14
问题内容

我已经编写了一些JavaScript,以便在asp.net应用程序中执行ajax调用。这会触发一个方法,该方法调用URL,并在POST中发送一些参数。

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

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

谁能告诉我是否有办法防止对该URL的未经授权的访问?否则,不道德的开发人员可能会使用该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地址更改等问题。

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



 类似资料:
  • 我的应用程序由几个PHPendpoint组成,这些endpoint可以通过AJAX访问。问题是它们也可以通过向同一endpoint发出HTTP请求的任何人访问。我可以添加这个答案中指定的和的检查,但是这些检查可以被欺骗。我可以添加一个需要与请求一起发布的密钥,但是任何查看javascript和/或控制台的人都可以看到这个密钥。这里的解决方案是什么?

  • 问题 你想在一个消息传输层如 sockets 、multiprocessing connections 或 ZeroMQ 的基础之上实现一个简单的远程过程调用(RPC)。 解决方案 将函数请求、参数和返回值使用pickle编码后,在不同的解释器直接传送pickle字节字符串,可以很容易的实现RPC。 下面是一个简单的PRC处理器,可以被整合到一个服务器中去: # rpcserver.py imp

  • 问题内容: 我想模拟一个继承的受保护方法。我不能直接从Java代码中调用此方法,因为它是从另一个包中的类继承的。我找不到指定此方法存根的方法 我查看了重写,这似乎它们仅用于私有方法! 如何指定保护方法? 问题答案: 果壳:不能总是用来对间谍进行打桩;使用。 假设静态导入和(两者): 您也可以设置on 。哪个更有意义取决于实际测试。

  • 问题内容: 我正在建立一个Drupal网站,其中包含许多将使用jQuery / ajax发布的用户特定信息。它自身的信息不是很敏感,仅重要的是验证表单数据是否已被诸如Firebug之类的工具篡改,并确保确实已从指定用户请求该信息。换句话说,我正在尝试找出用ajax发布时保护数据完整性和真实性的最佳方法。 理想情况下,我想使用一些众所周知的消息身份验证系统,例如HMAC算法。但是,由于它包含对称密钥

  • 我有一个开关语句,它将与一组进行比较,其中每个匹配调用不同的方法。 然而,对我来说,这听起来像是可以通过使用链接到包含方法和参数数量的操作的哈希映射(HashMap)更优雅、更有效地实现的,这样我可以将每个方法都链接到哈希映射(HashMap),例如: 因此,Operation类将有N个不同的实例,每个实例都包含字符串、方法和参数数量 然后,我可以简单地使用类似的方法调用该方法(我知道这不是使用i

  • 本文向大家介绍Pycharm远程调试openstack的方法,包括了Pycharm远程调试openstack的方法的使用技巧和注意事项,需要的朋友参考一下 Pycharm对openstack进行远程调试,供大家参考,具体内容如下 总共分三步: 一. 安装samba(非必须的) 二. 安装并配置pycharm 三. 修改openstack的代码(以nova为例) 一.为了实现远程代码的map要首先进