防止机器人向公共网络服务发送垃圾邮件

时间:2021-07-11 17:47:44

标签: jquery asp.net vb.net web-services

我有一个从 jQuery 调用中获取数据的公共 Web 服务。因为我网站的用户是公众,他们不需要登录和认证。我最近注意到一个 bot 似乎反复调用这个 Web 服务,它正在刺激我的服务器数据库。我不确定如何最好地防止恶意用户向我的 Web 服务发送垃圾邮件,但仍然保持服务打开并且不需要身份验证。我想我可以将密码发送到 Web 服务,并且仅在密码存在时才执行数据库调用,但是因为我的 JavaScript 代码调用该服务,所以恶意行为者只需查看源代码并复制密码就足够容易了.人们通常如何处理这个问题?我的代码示例如下:

Javascript:

          return $.ajax({
            url: '/MyWebService.asmx/GetAllMetaData',
            dataType: "json",
            type: "POST",
            contentType: "application/json; charset=utf-8",
            success: function (data) {
                var obj = $.parseJSON(data.d);
                //do stuff with the data
            },
            complete: function () {
                $('#LoadingData').hide();
            }
        });

MyWebService.asmx

<System.Web.Script.Services.ScriptService()>
<System.Web.Services.WebService(Namespace:="http://tempuri.org/")>
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)>
<ToolboxItem(False)>
Public Class MyWebService
    Inherits System.Web.Services.WebService

    <WebMethod()>
    Public Function GetAllMetaData() As String
       Dim MetaData As New SearchMetaData
       MetaData.SomeField = DatabaseCallFunction()
       MetaData.AnotherField = DatabaseCallFunctionTwo()

       Dim serilaizedString As String = JsonConvert.SerializeObject(MetaData, Formatting.Indented)

       Return serilaizedString
    End Function
End Class

0 个答案:

没有答案